Javascript: Построение объектов

Я немного болтаю по javascript, но у меня есть общий вопрос, который беспокоит меня. Давайте возьмем пример:

Если я прыгаю в консоль JS на Chrome, я могу легко просмотретьwindow объект.window кажется, перечислить много «типов классов», так сказать. Например,window.CSSPrimitiveValue является одним из таких свойств. Когда я оцениваюwindow.CSSPrimitiveValue в консоли я получаю то, что выглядит как конструктор (возможно):

function CSSPrimitiveValue() { [native code] }

Похоже, функция была реализована на каком-то родном языке. Независимо от того. Естественно, я хочу построить одну из этих вещей, например, так:

var test = new CSSPrimitiveValue();

Но тогда я получаю ошибку:

TypeError: Illegal constructor

Я подозреваю, что либо я вызываю конструктор неправильно, либо это вообще не конструктор. Я довольно большой JS Noob по этому поводу, но есть ли способ для меня, чтобы вручную построить один из этих объектов? Каков будет подход к этому?

 The Muffin Man04 нояб. 2016 г., 20:41
В некоторых случаях я смог создать свой собственный объект, который имеет те же свойства и методы, что и объект, который мне не позволили создать, и это сработало.

Ответы на вопрос(1)

Решение Вопроса

написанная на JavaScript, может быть конструктором при вызове с использованиемnew ключевое слово. Как вы уже заметили, функция, с которой вы имеете дело, этородныенаписано на C или C ++ (вероятно, на C ++, поскольку движок Chrome JavaScript написан также на C ++). Нативные функции / объекты могут иметь определенное поведение, например, ваш случай, когда вы не можете использовать его в качестве конструктора - вы ничего не можете сделать.

Эта «функция» даже не имеет.call() метод, вы также не можете вызывать его для объекта, который вы создали ранее (не то, чтобы это было бы очень полезно, поскольку у него не было бы правильного набора [[Prototype]])

Ваш ответ на вопрос