这里面涉及到的不止是call的知识。
call()以及apply()存在的意义是什么呢? 目的是改变函数(方法)执行的作用域。
这里要声明一点:函数在JavaScript中永远是一等公民。
var obj1 = {
name: 'aaa',
info: function(){
alert('name:'+this.name);
}
};
var obj2 = {
name: 'bbb'
};
obj1.info() //name:aaa
info() //错误
obj2.obj1.info() //错误
obj2.info() //错误
obj1.info.call(obj2) //name:bbb
在obj1中定义了一个info方法,只能通过obj1.info()来调用。
但这里的info方法依然是独立的。可以通过obj1.info().call()方式,来更改其调用者。

本文深入探讨了JavaScript中call与apply函数的意义与用途,解释了它们如何改变函数执行的作用域,使函数能够引用另一个对象的this。通过具体示例说明了如何使用call方法将一个对象的方法应用到另一个对象上。

981

被折叠的 条评论
为什么被折叠?



