我看到代碼:js中有什麼「call」函數?
Host.call(this, logger, config);
Host
是沒有父函數名。
call
似乎沒有在函數的定義中定義。
是call
特殊功能?由於call
是一個高度使用的詞,因此對於任何有用的解釋來說,搜索「JS調用」似乎並不容易。
我看到代碼:js中有什麼「call」函數?
Host.call(this, logger, config);
Host
是沒有父函數名。
call
似乎沒有在函數的定義中定義。
是call
特殊功能?由於call
是一個高度使用的詞,因此對於任何有用的解釋來說,搜索「JS調用」似乎並不容易。
.call()
套到this
this
內Host
功能,在第一個參數傳遞,其中logger
,config
是附加參數傳遞給Host
功能
function Host(a, b) {
// `this` : `obj`
console.log("in Host", this, a, b);
this.a = a;
this.b = b;
}
var obj = {};
Host.call(obj, 1, 2);
console.log(obj.a, obj.b); // set at `obj` : `this` at call to `Host`
所有的功能有兩個內置的方法,允許程序員提供參數和
this
變量也:call
和apply
。
所以在你的問題中,Host
方法被稱爲與logger
和config
參數,但你也傳遞一個參考目前無論是this
。
嗯..它調用函數。 (在你的例子中是'Host') – Maxx
這應該有助於:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call。簡而言之,它會改變函數的上下文並調用它。另一個參考鏈接:http://stackoverflow.com/questions/15455009/javascript-call-apply-vs-bind – Rajesh
在SO上詢問並回答無數次 –