Немного путаницы в том, как static
работает в javascript.
function StaticExample() {}
StaticExample.staticProp = "Hello"
console.log(StaticExample.staticProp) // "Hello"
Здесь я создал function
, а затем создал переменную stati c staticProp
(не если мы можем назвать это stati c хотя). Это добавляет поле staticProp
в поле constructor
в StaticExample
's prototype
Вопрос 1. Есть ли конкретная c причина для такого поведения (поле добавляется в свойство конструктора )?
Теперь constructor
переписывается, как показано ниже.
StaticExample.prototype.constructor = {}
console.log(StaticExample.staticProp) // "Hello"
Даже после этого, когда я пытался получить доступ к StaticExample.staticProp
, он выдает правильное значение Hello
Вопрос 2: Откуда взято staticProp
, даже когда constructor
, где оно было первоначально добавлено, перезаписано.