apply()方法是用来调用函数,并且可以传递一个指定的this值和一个数组(或类数组对象)作为参数。它并不能直接删除一个方法的this,但可以通过传递null或undefined来改变函数中的this的指向,相当于将this设置为全局对象。
以下是一个示例代码,演示如何使用apply()方法来改变函数中的this:
function greet() {
console.log('Hello, ' + this.name);
}
// 定义一个对象
var person = {
name: 'John'
};
// 使用apply()调用greet函数,并将person对象作为this参数传递
greet.apply(person); // 输出:Hello, John
// 使用apply()调用greet函数,并将null作为this参数传递
greet.apply(null); // 输出:Hello, undefined
在第一个例子中,通过传递person对象作为this参数,greet函数中的this被设置为person对象,结果输出了"Hello, John"。
在第二个例子中,通过传递null作为this参数,greet函数中的this被设置为全局对象(在浏览器环境中是window对象),因为没有定义name属性,所以结果输出了"Hello, undefined"。
需要注意的是,apply()方法不是直接删除一个方法的this,而是改变函数中的this的指向。要删除一个方法的this,可以使用delete关键字或将方法设置为null或undefined。
上一篇:Apply()不能应用于此列表?