通常の JavaScript オブジェクトがある場合、 のような構文を使用してそのプロパティにアクセスできますobjectName.proprtyName
。onlyを使用するpropertyName
と、以下のようなエラーが発生します -
const myObj = {
userIdName : "John"
};
console.log(myObj.userIdName); //John
console.log(userIdName); //error "Not defined"
ただし、組み込みwindow
オブジェクトの場合、以下のように両方window.propertyName
とpropertyName
単独で使用できます-
console.log(window.alert);
console.log(alert);
//both return same result
window
オブジェクトのこの動作の原因は正確には何ですか? 最初のスニペットのオブジェクトのように、明示的に構築されたオブジェクトに対して同じ動作を複製できますか? (誰もグローバルスコープを汚染したくないでしょうが、私はこのクエリを持っています)
編集- この質問は別の質問と重複しているというコメントを受け取りました。この質問は、1 つの違いを除いて私の回答と非常によく似ていwindow
ます。オブジェクトの同じグローバルにアクセス可能な動作を複製する方法を探しています。