通常の 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ます。オブジェクトの同じグローバルにアクセス可能な動作を複製する方法を探しています。