2017-02-13 11 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

あなたは '.bind()'に渡す前に 'new_this_value'と' arguments'の両方にアクセスすることができます – guest271314

+0

JSエンジンがこの値とアクセス方法を知っていることにもっと興味があると思いますデバッグ時 – CamJohnson26

+0

仕様を読んだことがありますか? 「アクセス」とはどういう意味ですか? – guest271314

答えて

1

何もこのことからあなたを妨げるものはない:standardからも

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

を、結合した機能は次のとおりです。

別の関数オブジェクトをラップエキゾチックなオブジェクト。

これは、元の関数を含む内部プロパティは、thisおよび引数を提供しました。
と明示的に言及されているとおり、私はそれらが直接公開されずにアクセス可能ではないと言います。


おそらくthis Q/Aは、この制限を回避するためにあなたを助けることができるの詳細が含まれています。

+0

確かに、あなた自身のプロパティを定義せずにnew_this_valueを取得する方法があるのでしょうか? – CamJohnson26

関連する問題