簡體   English   中英

獲取JavaScript函數的綁定執行上下文

[英]Get the bound execution context of a javascript function

讓我們假設這個JavaScript代碼

function a (b,c,d) {log(this); return b+c+d;}

a(1,2,3); // logs [Object Window], returns 6
bound = a.bind("hello", 5,6);
bound(7); // logs "hello", returns 18

現在給定函數bound (例如作為回調),有沒有辦法檢索綁定的上下文-即“ hello”,5、6?

雖然我沒有看到直接從函數讀取綁定上下文的方法,但是可以使用它(作為另一個函數的執行范圍)。

/**
 * @param {function} toBeCalled
 * @param {function} preBound
 * @param {array} args
 */
function callOnBoundScope(toBeCalled, preBound, args) {
    toBeCalled.apply(preBound, args);
}

函數preBound將僅提供其范圍,而不會被自身調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM