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