即時関数の引数thisについて質問です。callメソッドは、レシーバオブジェクトのthisに対しcallメソッドの引数で指定したオブジェクトを参照させます。
だとすると、下記のソースは、即時関数内のthisが同じthisを参照しているということになります。
関数内のthisは、グローバルオブジェクトのwindowを参照しています。
ちなみにソースを厳密(strict)にするとundefined、つまり未定義を参照するそうです。
javascript
1(function() { 2}).call(this);
関数内のthisは、windowを参照していると思うのですが、
javascript
1(function() { 2})()
と何が違うのでしょうか。
つまり、callを使って即時関数内でwindowを参照しているthisに対して、同じくwindowを参照しているthisを参照するよう、処理しています。
ココによれば、callを使わないとwindowという外部にあるオブジェクトを参照してしまうので、あまりよろしくないとのことです。
つまり、windowをcallを使い関数内のthisに参照させることで、隠密性が高まるということでしょうか。
それは、callを使わないときのwindowを参照するthisとどう違うのでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/28 13:51
2017/07/28 14:09
2017/08/01 10:16
2017/08/01 10:30
2017/08/07 10:23