1. 程式人生 > 其它 >call,apply,bind的用法

call,apply,bind的用法

技術標籤: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, '成都', '北京')()

在這裡插入圖片描述