ノードでは、この例でどのように定義されていませんか?ノードでは、この内部関数は未定義と等しい
私は厳密なモードを使用していないので、関数内からグローバルオブジェクトにアクセス可能でなければなりません。
this.foo = "bar";
function fun() {
console.log(this.foo);
}
fun(); // undefined
ノードでは、この例でどのように定義されていませんか?ノードでは、この内部関数は未定義と等しい
私は厳密なモードを使用していないので、関数内からグローバルオブジェクトにアクセス可能でなければなりません。
this.foo = "bar";
function fun() {
console.log(this.foo);
}
fun(); // undefined
このフラグメントをMDNの約"use strict"
モードで表示します。
まず、厳密モードで機能する
this
として渡された値(別名「ボックス化」)オブジェクトであるに強制されません。通常の関数の場合、this
は常にオブジェクトです。オブジェクト値this
で呼び出された場合は、指定されたオブジェクトか、ブール値、文字列、または数値で呼び出された場合、ボックス化された値this
;またはstrictモード機能のために...未定義またはnullthis
で呼び出された場合にグローバルオブジェクトは、指定されたthis
は、オブジェクトに箱詰めされていない、と指定されていない場合は、this
は不定となります。最高の説明については
例えば、基準参照: "Securing" JavaScript (MDN)
もstackoverflowのこの記事を参照してください。In node.js, how the 'use strict' statement is interpreted?
@Mohammad、ノード上で、グローバルオブジェクトが 'はGlobal'を用いて得られる – Lev
を行います。 –