既然java等各类语言都有继承,那我们javascript是否也有继承,答案是—是的
function Foo () {}
var foo = new Foo();
foo.a = 1;
Foo.prototype.a = 100;
Foo.prototype.b = 200;
Foo.prototype.c = function() {
return 300;
}
console.log(foo.a);//1
console.log(foo.b);//200
console.log(foo.c());//300
在这个例子中,细心的朋友是不是发现foo.a
并不是我们后面更改Foo.prototype.a = 100;
,所以foo.a
和Foo.prototype.a
是两个不同的储存变量;对于foo.a
其为具体对象的基本属性【间接理解为子类】,Foo.prototype.a
其为Foo.prototype的基本属性【间接理解为父类】。
网络配图:
当console.log(foo.a);
时,搜索引擎会先检索本对象是否存在此属性,若没有则沿着原型链__prototype__
寻找,找到或则undefined。这就是继承。
这也是为什莫我们创建空的对象时,其还有可调用属性函数
代码:
var object = new Object();
object.
菜鸟爬行中…