深色模式
对象的继承
原型对象
构造函数的缺点
每个对象都是独立的,不能共享属性或方法。
prototype 属性
每个函数都有一个prototype
属性,指向一个对象。对于普通函数来说,该属性基本无用。但是,对于构造函数来说,生成实例的时候,该属性会自动成为实例对象的原型。
原型链
原型也是一个对象,它有它的原型,这样就产生一条原型链。
原型链的尽头是Object.prototype
,它的值是null
。
prototype.constructor
构造函数有一个prototype
属性,prototype
有一个constructor
属性,constructor
指向这个构造函数。
js
function P() {}
var proto = P.prototype;
var cons = proto.constructor;
cons === P // true
// 即:
P.prototype.constructor === P // true
instanceof 运算符
instanceof
运算符返回一个布尔值,表示对象是否为某个构造函数的实例。
js
var v = new Vehicle();
v instanceof Vehicle // true