2017-02-13 34 views
1

我知道,你可以使用綁定函數的這個值在哪裏存儲?

function.bind(new_this_value, arguments)

但有訪問綁定值的方式函數的這個值?即是這樣的:

console.log(my_function.boundValue) 

換句話說,假設一個模塊提供以下功能:

function getACoolFunction() { 
    var someFarAwayFunction = function() {console.log(this.name)} 
    var bound_this_value = {name: "bound this value"} 
    someFarAwayFunction.bind(bound_this_value) 
    return someFarAwayFunction; 
} 

,我有這個在我的代碼:

import {getACoolFunction} from coolModule 

var coolFunction = getACoolFunction(); 
// coolFunction.bound_value 

如何獲得來自我的代碼而不更改模塊的coolFunction的綁定值?

+0

在將'new_this_value'和'arguments'傳遞給'.bind()'之前,我有權訪問' – guest271314

+0

我想我更關心JS引擎如何知道這個值是什麼以及如何訪問它調試時 – CamJohnson26

+0

您是否閱讀過規範? 「訪問它」是什麼意思? – guest271314

回答

1

沒有什麼能阻止你這樣做:

let my_function = function.bind(new_this_value, arguments); 
my_function.boundValue = new_this_value; 

由於從standard,綁定功能:

異國情調的對象包裝另一個函數對象。

它具有含原函數內部屬性,提供this和參數。
,因爲他們是爲內部提到的,我會說,他們不直接暴露和訪問。


大概this Q/A包含的細節,可以幫助您解決此限制。

+0

肯定,但我不知道是否有一種方式來獲得new_this_value沒有定義自己的財產,特別是如果你正在調試對象你沒有寫例如 – CamJohnson26