1
// global scope
var sayMyFavoriteColor = function(adj){
return 'My ' + adj + ' color is ' + this.favoriteColor; + '!'
};
var callFnTest = function (opts) {
return sayMyFavoriteColor.call(this, opts);
};
this.favoriteColor = 'Brown'; //adding a global variable to window
i.e. var favoriteColor = 'Brown'
callFnTest('most disliked')
"My most disliked color is Brown"
私の質問は、this
がそれをウィンドウを指しているといいますか?呼び出しと適用が関数にネストされたときを指す "this"キーワードは何ですか?
@ KenY-N申し訳ありません。 –
あなたの例では、 'sayMyFavoriteColor'の中の' this'は 'this'が' callFnTest'の中にあるものを指します。 'callFnTest(...)'と呼ばれるので、 'this'はグローバルオブジェクトを参照し、厳密モードが有効な場合は' undefined'を参照します。もしあなたがまだいなければ、 'this'についての記事(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/など)を読むことをお勧めします。 –
@FelixKlingしたがって、 'return sayMyFavoriteColor.call(this、opts);'ステートメントではゼロにする必要があります。言い換えれば、ハードコードされた 'this'参照の代わりにコンテキスト内に' favoriteColor: 'Plaid'プロパティを持つオブジェクトがあるとします。色はPlaidでしょうか?右? –