对static
在javascript中的工作方式有些困惑。
function StaticExample() {}
StaticExample.staticProp = "Hello"
console.log(StaticExample.staticProp) // "Hello"
在这里,我创建了一个function
,然后创建了一个静态变量staticProp
(虽然我们不能称其为静态)。这会将字段staticProp
添加到constructor
的StaticExample
prototype
字段中问题1:这种行为是否有特定原因(字段已添加到构造函数属性中?)>
现在constructor
被重写如下。
StaticExample.prototype.constructor = {} console.log(StaticExample.staticProp) // "Hello"
即使在此之后,当我尝试访问
StaticExample.staticProp
时,它也会提供Hello
的正确值
问题2:即使最初添加了staticProp
的地方被覆盖,从constructor
的地方也被覆盖。
关于静态在javascript中的工作方式有些困惑。 function StaticExample(){} StaticExample.staticProp =“ Hello” console.log(StaticExample.staticProp)//“ Hello”在这里,我创建了一个函数...
StaticExample
是一个对象。功能对象,但仍然是对象。您为其分配一个新属性:StaticExample.staticProp = "Hello"
。