zoukankan      html  css  js  c++  java
  • javascript原型链简单的理解

      在JavaScript中,一共有两种类型的值,原始值和对象值.每个对象都有一个内部属性[prototype],我们通常称之为原型.原型的值可以是一个对象,也可以是null.当然也可能是一个值,如果它的值是一个对象,则这个对象也一定有自己的原型.这样就形成了一条线性的链,我们称之为原型链.

    访问一个对象的原型可以使用ES5中的Object.getPrototypeOf方法,或者ES6中的__proto__属性.

    原型链的作用是用来实现继承,比如我们新建一个数组,数组的方法就是从数组的原型上继承而来的.

    var arr = [];
    arr.map === Array.prototype.map    //arr.map是从arr.__proto__上继承下来的,arr.__proto__也就是Array.prototype
    var Person = function(){};
    Person.prototype.sayName = function() {
        alert("My Name is Jacky");
    };
    Person.prototype.age = 27;
    var p = new Person();
    p.sayName();

      p是一个引用指向Person的对象。我们在Person的原型上定义了一个sayName方法和age属性,当我们执行p.age时,会先在this的内部查找(也就是构造函数内部),如果没有找到然后再沿着原型链向上追溯。这里的向上追溯是怎么向上的呢?这里就要使用__proto__属性来链接到原型(也就是Person.prototype)进行查找。最终在原型上找到了age属性。

  • 相关阅读:
    unittest_assert断言(4)
    unittest_skip跳过用例执行(3)
    unittest_TestSuite测试套件(2)
    unittest_认识unittest(1)
    Selenium_POM架构(17)
    【转】HTML基本代码
    cursor 鼠标样式的几种样式
    【笔记】在json-lib中如何不序列化某些字段
    关于Ext的一些使用心得
    GIT
  • 原文地址:https://www.cnblogs.com/cdwp8/p/4049589.html
Copyright © 2011-2022 走看看