黄楼生活网免费搜集分享生活中实用的生活小常识,生活小窍门,生活小妙招等生活常识百科大全,帮助解决生活中的难题,为您提供多样化信息丰富您的生活.欢迎收藏!

web前端:理解js原型链

发布:黄楼生活网2020-12-13 12:42:16分类: 玩转数码

{导读}本文主要讲述关于web前端:理解js原型链的内容, 本文有516个文字,预计阅读时间3分钟。

工具/材料

javascript

操作方法

  • 01

    学习原型链之前我们先认识一下构造函数,代码如下:

    function S() {
    this.name = 'xxx';
    this.say = function() { console.log(this.name) }
    }
    var s1 = new S();

    其中,s1是S的实例,s1的__proto__(大家先不用管__proto__属性,后续会讲到)中有一个constructor(构造函数)属性,该属性指向S。
    在这里,大家可以记住两点:
    1.s1是构造函数S的实例;
    2.s1.__proto__.constructor===S 也可以写成 s1.constructor===S;

  • 02

    接下来我们来看下一段代码:

    function S2() {}
    S2.prototype.name = 'XXX';
    S2.prototype.say = function() {
    console.log(this.name);
    }

    var s2 = new S2();
    var s3 = new S2();
    console.log(s2.sayName === s3.sayName);//true
    console.log(s2.__proto__===S2.prototype);//true

    这一段代码中我们可以看到一个新属性——prototype,这是什么呢,其实这就是构造函数S2的原型对象,每个对象都有__proto__属性,但是只有函数对象才有prototype属性。而s2是构造函数S2的实例,而s2.__proto__指向的就是S2的原型对象,即s2.__proto__===S2.prototype。得到一个结论,实例的__proto__属性指向的就是其构造函数的原型对象。

  • 03

    继续上一步的代码,我们添加代码继续调试:

    console.log(s2.__proto__);//返回S2的原型对象
    console.log(S2.prototype);//返回S2的原型对象

    console.log(s2.__proto__.__proto__);//返回Object对象
    console.log(S2.prototype.__proto__);//返回Object对象

    console.log(s2.__proto__.__proto__.__proto__);//返回null
    console.log(S2.prototype.__proto__.__proto__);//返回null

    其实,S2的原型对象上还有原型对象,因为S2的原型对象也相当于只是Object对象的一个实例。

  • 04

    在这里我给大家画了一张图,便于大家理解原型链。

特别提示

码子不易,小编如有说得不对的地方,望大家指点包含,谢谢

以上就是黄楼生活网小编为大家分享的web前端:理解js原型链「已解决」,希望对大家有所帮助,了解更多问题欢迎关注黄楼生活网!

站长不易,多多少少是点心意

微信二维码扫码支付支付宝二维码扫码支付
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
郑重声明本文版权归原作者所有,如有信息标记有误,请第一时间联系我们修改或删除,多谢。
上一篇:数据库产品有哪些   |  下一篇:vm虚拟机安装教程
扫描二维码

欢迎使用手机扫描访问本站