原型和原型链

初次接触原型和原型链

  先来构造函数,专门生成实例对象的函数;对象,一个容器,里面封装着属性和方法。 

var Car = function() { 
    this.price = 999; 
}

 

  生成对象,需要用到new命令。

var Car = function() {
    this.price = 999;
}
var c = new Car();
c.price; //999

  三个简单类型--Number、String和Boolean作为构造函数调用

var n = new Number(1);
n.__proto__ === Number.prototype; //true
n.__proto__.__proto__ === Object.prototype; //true
var s = new String('abc');
s.__proto__ === String.prototype; //true
s.__proto__.__proto__ === Object.prototype; //true
var b = new Boolean(true);
b.__proto__ === Boolean.prototype; //true
b.__proto__.__proto__ === Object.prototype; //true

  原型(prototype):实例对象中的__proto__属性指向函数的prototype属性

  原型链(prototype chain):对象到原型,再到原型的原型。

  JS规定每一个函数都有prototype属性

  所有对象的原型是Object.prototype,而Object.prototype的原型是null,即Object.prototype.__proto__ === null 为true

  在读取某个对象的属性时,首先去对象本身属性寻找,找不到就去对象的原型,再找不到就去原型的原型,接着找不到去Object.prototype,最后还是找不到,只能返回undefined。

posted @ 2018-07-23 00:45  lxxxxxxxx  阅读(155)  评论(0)    收藏  举报