答案 0 :(得分:1)
全局window
对象已经具有name
的属性,并且它位于本机代码的范围内。
答案 1 :(得分:0)
window.name
是一个getter / setter来设置窗口的名称。因此,它必须是string
类型。
试试这个:
window.name = ["something", "else"];
您会看到现在window.name
设置为"something,else"
;这是Array.toString()
的结果。
这正是这里发生的事情。当您致电object
toString
时,您会获得[object Object]
。
如果您不使用预定义的window.name
getter / setter。
function Person(first, last) {
this.something = {
first,
last
};
}
f = {};
Person.call(f, "fsd", "fsd");
console.log(f.something);
g = window;
Person.call(g, "fsd", "fsd");
console.log(g.something);

更多关于javascript中的getter / setter:
Setters:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/set
吸气剂:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/get