document.cookie
或者window.location
是其=
运算符被覆盖的对象,因此当您尝试更改它们时,会发生与常规分配不同的事情。
document.cookie
更令人惊讶的是typeof document.cookie === "string"
。
它是一些非常具体的 javascript 对象的一些内置功能,还是可以用任何类型的对象复制的东西?
document.cookie
或者window.location
是其=
运算符被覆盖的对象,因此当您尝试更改它们时,会发生与常规分配不同的事情。
document.cookie
更令人惊讶的是typeof document.cookie === "string"
。
它是一些非常具体的 javascript 对象的一些内置功能,还是可以用任何类型的对象复制的东西?
在 JavaScript 中,可以定义对象属性(如document.cookie
或window.location
)以在读取或写入属性值时自动调用 getter 或 setter 函数。属性也可以标记为可写或不可写。浏览器使用此功能来实现您所看到的行为。
从ECMAScript 5Object.defineProperty
开始,您可以使用该函数以这种方式定义自己的属性。可以在此处找到有关如何使用它的详细信息和示例。例如,您可以使用此功能在将值分配给您的一个对象的属性时调用一些复杂的操作。