摘要: 对象是js中的基本数据结构。对象在js语言编码中也随处可见,比如经常会用到的函数,也是一个Function构造函数,Function.prototype原型对象。每当声明一个函数时,都会继承Function.prototype里的方法和属性。当使用"1,2,3".split(',')时,实际是把"123"先转化为String对象,然后调用String对象的原型方法。这些初期时只会用用,但它里... 阅读全文
posted @ 2016-06-21 10:41 脚后跟着猫 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 41条对违反抽象原则行为的讨论之后,下面聊一聊终极违例。由于对象共享原型,因此每一个对象都可以增加、删除或修改原型的属性。这个有争议的实践通常称为猴子补丁。 猴子补丁示例 猴子补丁的吸引力在于其强大。数组缺少一个有用的方法吗?你自己就可以增加它。Array.prototype.split=function(i){ return [this.slice(0,i),this.slice(i)];... 阅读全文
posted @ 2016-06-21 10:34 脚后跟着猫 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 对象原型链 一个对象给其使用者提供了轻量、简单、强大的操作集。使用者与一个对象最基本的交互是获取其属性值和调用其方法。这些操作不是特别在意属性存储在原型继承结构的哪个位置。随着时间推移,实现对象时可能会将一个属性实现在对象原型链的不同位置,但是只要其值保持不变,那么这些基本操作的行为也不变。原型是一种对象行为的实现细节。 内省机制 js提供了便利的内省机制来检查对象的细节。Object.proto... 阅读全文
posted @ 2016-06-21 10:33 脚后跟着猫 阅读(291) 评论(0) 推荐(0) 编辑
摘要: ECMAScript标准库里配备了许多重要的类,如Array,function,以及Date等。扩展这些类生成子类可以方便完成很多工作,但它们的定义具有很多特殊的行为,所以很难写出行为正确的类。 Array示例 一个操作文件系统的库可能希望创建一个对象的目录,该目录继承了数组的所有行为。function Dir(path,entries){ this.path=path; for(var . 阅读全文
posted @ 2016-06-21 10:31 脚后跟着猫 阅读(241) 评论(0) 推荐(0) 编辑
返回
顶部