原型和原型链
初次接触原型和原型链
先来构造函数,专门生成实例对象的函数;对象,一个容器,里面封装着属性和方法。
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。

浙公网安备 33010602011771号