JavaScript语言的特点
JavaScript不是面向对象的,所以
引用语义:JavaScript是引用语义的语言,赋值会得到引用;
JavaScript是没有类的,总是直接创建{}对象;这个对象叫原型;
对象继承与原型
下面我们通过一个超级简化的例子来看看调试环境下原型继承的实际情况。
我们定义了a对象,此时a对象就有了原型;
我们定义了b对象,b的原型设置为a;
我们定义了c对象,c的原型设置为b;
所谓继承关系不过是把一个对象的原型指向另一个对象而已。
因为运行时可以修改原型,所以一个对象可以变成任何对象。
var a = {
a1: 'Robot'
};
var b = {
name: '小明'
};
b.__proto__ = a;
var c = {};
c.__proto__ = b;
上面我们可以清晰的看到原型继承产生的原型链。
链上每个节点的成员自动被下游节点拥有(或者说继承);