call,apply,bind的用法
阿新 • • 發佈:2021-01-16
技術標籤:JavaScript
var obj = {
name: "張三",
age: 18,
mySay: function (fm, t) {
console.log('我是' + this.name + '今年' + this.age + '來自' + fm + '去往' + t);
}
}
var objOther = {
name: '李四',
age: 20
}
obj.mySay()
上述程式碼定義兩個物件,當執行obj中的mySay()方法時,輸出結果如下
我們可用使用特定方法來替換物件中的某些屬性:
1.使用call()方法,傳入引數用字串形式
obj.mySay.call(objOther, '成都', '北京')
2.使用apply()方法,傳入引數用陣列的形式
obj.mySay.apply(objOther, ['成都', '北京'])
3.使用bind()方法,傳入引數可用字串可用陣列(單個分開的陣列)要再次執行
obj.mySay.bind(objOther, ['成都'], ['北京'])()
obj.mySay.bind(objOther, '成都', '北京')()