Javascript document.cookie或window.location分配的行为从何而来?
Javascript document.cookie或window.location分配的行为从何而来?,javascript,Javascript,document.cookie或window.location是覆盖其=运算符的对象,因此当您尝试更改它们时,会发生与常规赋值不同的情况。 document.cookie更令人惊讶,因为typeof document.cookie==“string” 它是一些非常特定的javascript对象的内置功能,还是可以用任何类型的对象复制?在javascript中,是一种对象属性(如document.cookie或window.location)可以定义为在读取或写入属性值时自动调用getter或se
document.cookie
或window.location
是覆盖其=
运算符的对象,因此当您尝试更改它们时,会发生与常规赋值不同的情况。
document.cookie
更令人惊讶,因为typeof document.cookie==“string”
它是一些非常特定的javascript对象的内置功能,还是可以用任何类型的对象复制?在javascript中,是一种对象属性(如
document.cookie
或window.location
)可以定义为在读取或写入属性值时自动调用getter或setter函数。属性也可以标记为可写或不可写。浏览器使用此功能来实现您看到的行为
截至,您可以使用
Object.defineProperty
函数以这种方式定义自己的属性。可以找到有关如何使用此功能的详细信息和示例。例如,当一个值被分配给一个对象的属性时,您可以使用此功能调用一些复杂的操作。有趣!我从未意识到typeof
将返回getter
的结果类型,而不是对象的类型。