apply call bind 共同點
- 都是用來改變函數的this對象的指向的。
- 第一個參數都是this要指向的對象。
- 都可以利用后續參數傳參
apply
語法:apply(thisArg, [argsArray])
var user = {
greet: "hello",
greetUser: function (userName) {
console.log(this.greet + " " + userName);
},
};
var greetHi = {
greet: "hi",
};
user.greetUser.apply(greetHi, "zhouJin"); // hi zhouJin
call
語法:call(thisArg, [argsArray])
var user = {
greet: "hello",
greetUser: function (userName) {
console.log(this.greet + " " + userName);
},
};
var greetHi = {
greet: "hi",
};
user.greetUser.call(greetHi, "zhouJin"); // hi zhouJin
bing
用法: 使用bind方法,可以為函數綁定this值,然后作為一個新的函數返回
var user = {
greet: "hello",
greetUser: function (userName) {
console.log(this.greet + " " + userName);
},
};
var greetHi = user.greetUser.bind({ greet: "hi" });
greetHi("zhouJin"); // hi zhouJin