用 new 调用时this 会指向空的对象,并且这个对象的原型指向MyClass.prototype
var obj=new MyClass();
obj.prototype–>MyCLass.prototype._prototype—>Object.prototype.prototype—>null
原型链:
再谈原型链:
上图对应的对应的代码如下:
js用call实现继承:
function Animal(name){
this.name = name;
this.showName = function(){
alert(this.name);
}
}
function Cat(name){
Animal.call(this, name);
}
var cat = new Cat("Black Cat");
cat.showName();
Animal.call(this) 的意思就是使用 Animal对象代替this对象,那么 Cat中不就有Animal的所有属性和方法了吗,Cat对象就能够直接调用Animal的方法以及属性了.
类似的多继承(没用原型链的方法)如下:
function Class10()
{
this.showSub = function(a,b)
{
alert(a-b);
}
}
function Class11()
{
this.showAdd = function(a,b)
{
alert(a+b);
}
}
function Class2()
{
Class10.call(this);
Class11.call(this);
}