资讯专栏INFORMATION COLUMN

prototype

ZoomQuiet / 785人阅读

摘要:原型链在浏览器内部有一个对象,它本身有用以下图这样的属性部分在创建一个对象的时候在执行这个代码的时候,浏览器会加上一句代码在调用方法时,在直接属性里找不到这个方法,就会顺着其属性即找这个方法在中,数组也是一个对象,所以数组也能调用的方法,那

原型链

在浏览器内部有一个window对象,它本身有用以下图这样的属性(部分)

在创建一个对象的时候

var obj = {};

在执行这个代码的时候,浏览器会加上一句代码

var obj = {
    obj.__proto__ = window.Object.prototype;
};

在obj调用toString()方法时,在直接属性里找不到这个方法,就会顺着其属性__proto__(即window.Object.prototype)找这个方法

在JavaScript中,数组也是一个对象,所以数组也能调用window.Object.prototype的方法,那么究竟是怎么实现这个关系呢?

实现方法:window.Array.prototype也有一个原型(window.Array.prototype.__proto__),这个原型指向的是window.Object.prototype,所以就实现了数组可以调用window.Object.prototype的方法。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104027.html

相关文章

  • 高能!typeof Function.prototype 引发的先有 Function 还是先有 O

    摘要:有个例外他就是。看左侧对象的原型链上是否有第一步得到。将各内置引用类型的指向。用实例化出,,以及的行为并挂载。实例化内置对象以及至此,所有内置类型构建完成。最后的最后,你还对是现有还是现有有想法了吗以上均为个人查阅及实践总结的观点。 来个摸底测试,说出以下每个表达式的结果 function F(){}; var o = {}; typeof F; typeof o; typeof F...

    娣辩孩 评论0 收藏0
  • JavaScript中__proto__与prototype的关系

    摘要:了解中原型以及原型链只需要记住以下点即可对象都有属性,指向构造函数的构造函数函数都有属性,指向构造函数的原型对象的内置构造函数可知所有的构造函数都继承于甚至包括根构造器及自身。 了解JavaScript中原型以及原型链只需要记住以下2点即可 对象都有__proto__属性,指向构造函数的prototype 构造函数函数都有prototype属性,指向构造函数的原型 1、对象的__p...

    justjavac 评论0 收藏0
  • 浅谈javascript中的prototype

    摘要:因此,请慎重重写原型继承说到就不得说继承,我们通过给上添加属性和方法,就能使该构造函数所有的实例对象拥有属性和方法。 本人博客:【www.xiabingbao.com】 在本文中,我们讲解prototype的内容主要由:什么是prototype,prototype与函数之间的关系,prototype与实例对象之间的关系,使用proto实现一个简单的继承。 1. prototype的简要...

    seanHai 评论0 收藏0
  • JS 原型及原型链学习

    摘要:所以继承了对象的所有方法,当你用时,会先查一下它的构造函数的原型对象有没有有方法,没查到的话继续查一下的原型对象有没有这个方法。 普通函数与构造函数的区别 在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。 在函数调用的时候: function fn() { } 构造函数:1. new fn( ) 2 .构造函数内部会...

    PiscesYE 评论0 收藏0
  • js中的prototype、__proto__、constructor

    摘要:一旦原型对象被赋予属性和方法那么由相应的构造函数创建的实例会继承上的属性和方法为什么只有函数才有属性规范就这么定的。其它的构造器的都是一个对象。 哪些对象有原型?所有的对象在默认情况下都有一个原型,因为原型本身也是对象,所以每个原型自身又有一个原型(只有一种例外,默认的对象原型在原型链的顶端) prototype属性prototype是每个函数对象都具有的属性,被称为原型对象,而__p...

    fizz 评论0 收藏0
  • Javascript面向对象编程(二):构造函数的继承

    摘要:动物还有一个猫对象的构造函数。这显然会导致继承链的紊乱明明是用构造函数生成的,因此我们必须手动纠正,将对象的值改为。这是很重要的一点,请务必注意如果替换了对象,下一步必然是为新的对象加上属性,并将这个属性指回原来的构造函数。 原文链接 现在有一个动物对象的构造函数。 function Animal() { this.species = 动物; } 还有一个猫对象的构造函数。 fun...

    longmon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<