javascript - これに関する問題点の指摘
天蓬老师
天蓬老师 2017-06-28 09:25:33
0
5
767
リーリー

上記のコードの実行結果がウィンドウで表示されるのはなぜですか?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(5)
滿天的星座

obj.getFoo() 返回一个方程,赋值给了 f 。
f 通过 f() 被调用,没有明确的调用者,所以 this 就是 window

「obj」を取得したい場合は、これを行うことができます

リーリー
いいねを押す +0
阿神

だって、f()实际运行的地方,thiswindow,由于没有通过call或者bind改变上下文,所以输出的就是windowで。

次のように置き換えることができます:

リーリー

こちらself就是指向window了,所以return self.foo就是return window.foo,也就是'window'

いいねを押す +0
淡淡烟草味

実際、最も簡単な理解は、obj.getFoo が f を与え、このメソッドが実行される場所を確認することです。

リーリー
いいねを押す +0
曾经蜡笔没有小新

console.log(f()) の

f() は独立して呼び出されます
1. 呼び出し元の関数がオブジェクトによって所有されている場合、関数が呼び出されるとき、内部の this はオブジェクトを指します。
2. 関数が独立して呼び出された場合、関数内の this は未定義を指します。
お勧めの読書 http://www.jianshu.com/p/d647... お役に立てば幸いです

いいねを押す +0
Ty80

関数の実行、関数本体内の this は関数の呼び出し元を指します

1. 次のコードでは、getFoo 関数の呼び出し元は obj なので、getFoo 関数内の this は obj オブジェクトを指します

リーリー

2. getFoo 関数は無名関数を返し、それを変数 f に代入し、関数 f を実行します。このとき、関数 f の呼び出し元はウィンドウです。関数内では f もウィンドウを指します

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!