今天在理解.call()方法上出现了问题,自己给自己讲不明白了...
var obj = {
name: 'linxin'
}
function func() {
console.log(this.name);
}
func.call(obj); // linxin
问题一 : A.call(B),可以理解为A继承了B吗?
要是可以的话,
问题二 :下边这个怎么变成了B继承A了呢?
var Person1 = function () {
this.name = 'linxin';
}
var Person2 = function () {
this.getname = function () {
console.log(this.name);
}
Person1.call(this);
}
var person = new Person2();
person.getname(); // linxin
.call()的A和B要怎么理解 ? 怎么来形容比较好理解一些...现在看的有点脑溢血
不要这样理解,
call
跟继承没有关系。最简单的理解,
func.call()
仅仅就是"指定了在函数 func 内部 this 的值是多少"并执行 func。上面的两段代码:
可能第二段代码里的变量命名让你觉得有点继承的感觉,我把它改写一下你再看看:
希望对你有帮助