document.cookie或window.location赋值的行为来自哪里?

时间:2013-02-22 19:58:45

标签: javascript

document.cookiewindow.location是对=运算符覆盖的对象,因此当您尝试更改它们时,会发生与常规分配不同的内容。 document.cookie以来,typeof document.cookie === "string"更令人惊讶。

它是一些非常具体的javascript对象的内置功能还是可以用任何类型的对象复制的东西?

1 个答案:

答案 0 :(得分:2)

在JavaScript中,可以定义对象属性(如document.cookiewindow.location),以便在读取或写入属性值时自动调用getter或setter函数。属性也可以标记为可写或不可写。浏览器使用此功能来实现您所看到的行为。

ECMAScript 5开始,您可以使用Object.defineProperty函数以这种方式定义自己的属性。可以找到here的详细信息和示例。例如,当将值赋给某个​​对象的属性时,可以使用此功能调用某些复杂的操作。