关于call()方法中的this

实现继承

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的方法以及属性了.

对于其中一句话不是很理解:“ Animal.call(this) 的意思就是使用 Animal对象代替this对象”。
我在犀牛书中看到,call()和apply()的第一个参数是要调用函数的母对象,它是调用上下文,函数体内通过this来获得它的引用。
在上面代码总,Animal是要调用的函数,而它没有被封装作为某个对象的属性,那么Animal的母对象不就是global对象吗?为何代码中的解释却是this指向Animal对象呢?

12345678_0001
浏览 3182回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript