Javascript:必须知道的Javascript知识点之“原型链”


Javascript:必须知道的Javascript知识点之“原型链”

代码示例

1 var CustomClass = function() { };
2 var CustomObject = new CustomClass();

发生了什么事情

原型链规则

规则1

每个对象都有一个“__proto__”属性,这个属性对外不可见,只有javascript解释器知道,在google浏览器中可以看到这个属性。

规则2

“取值操作”CustomObject.XXXProperty的规则是,先查找CustomObject对象本身有没有XXXProperty,没有的话就去CustomObject.__proto__中找,还没找到就去CustomObject.__proto__.__proto__中去找,以此类推直到找到Object.__proto__。

规则3

“赋值操作”CustomObject.XXXProperty= xxxValue的规则是,直接将值xxxValue赋给CustomObject.XXXProperty。也就是说,“赋值操作”和原型链没有任何关系。

规则4

CustomObject.__proto__指向的对象和其实例化时CustomClass.prototype指向的对象是一个对象,但是CustomClass.prototype可以随时修改其指向的对象。

备注

只要精通“原型链”和“一切结皆是对象",理解“继承”和“掺入”就不是问题了,自己实现这些特性应该也不难。我用了四年才明白上边这些规则。

优质内容筛选与推荐>>
1、小强的HTML5移动开发之路(6)——Canvas图形绘制基础
2、老书新看——第F天
3、Linux下远程cp命令scp
4、LeetCode-19
5、JavaScript protoype继承的简单实现


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号