0

document.cookie或者window.location是其=运算符被覆盖的对象,因此当您尝试更改它们时,会发生与常规分配不同的事情。 document.cookie更令人惊讶的是typeof document.cookie === "string"

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

4

1 回答 1

2

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

ECMAScript 5Object.defineProperty开始,您可以使用该函数以这种方式定义自己的属性。可以在此处找到有关如何使用它的详细信息和示例。例如,您可以使用此功能在将值分配给您的一个对象的属性时调用一些复杂的操作。

于 2013-02-22T20:06:03.640 回答