当我们有普通的 javascript 对象时,我们可以使用类似objectName.proprtyName
. 如果我们只使用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
对象的这种行为?我们可以为任何显式构建的对象(如第一个片段中的对象)复制相同的行为吗?(虽然没有人愿意污染全局范围,但我只有这个查询)
编辑-我收到评论说这个问题是另一个问题的重复。这个问题与我的答案非常相似,除了一个区别 - 我正在寻找一种方法来复制window
对象的相同全局可访问行为。