首页 > 编程语言 > 详细

javascript原型链简单的理解

时间:2014-10-25 00:49:04      阅读:197      评论:0      收藏:0      [点我收藏+]

  在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属性。

javascript原型链简单的理解

原文:http://www.cnblogs.com/cdwp8/p/4049589.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!