2015-07-11 3 views
1

Как мы знаем, мы используем функцию конструктора и «новое» для создания объектов в Javascript.Какова цель дизайна использования функции-конструктора и «нового» ключевого слова для создания объектов в Javascript?

var Cat = function() {...}; 
var cat = new Cat(); 

Однако, с точки зрения дизайна языка программирования, я думаю, что это совершенно неясные интуиции людей. Как получается этот дизайн?

(Дело в том, не о «новом» ключевом слове, но синтаксический с помощью «функции», чтобы создать объект, который является неясным. Объект только объект. Почему он не имеет ничего общего с функцией?)

+1

Возможно, это происходило на таких языках, как C++ и Ява. Что он сделал. На каких языках вы знакомы? – Pointy

+1

Это был выбор дизайна, чтобы сделать JavaScript [Protoype-based] (https://en.wikipedia.org/wiki/Prototype-based_programming). В любом случае он определен в [стандарте ECMAScript] (https://es5.github.io/#x11.2.2) и работает, чтобы установить цепочку [Prototype] и неявно создает новый объект и т. Д. [Prototype] может быть установлен также с Object.created, но это другой вопрос .. – user2864740

+0

Связанный дубликат не о JavaScript явно, но так как JavaScript взял синтаксис непосредственно из Java/C++, я думаю, что это применимо. – Pointy

ответ

-1

Это называется Java Script и был вдохновлен частично Java:

class Cat { 
    Cat(dietaryPreference) {...} 
} 
Cat cat = new Cat("vegetarian"); 

... где new ключевое слово используется с функциями конструктора

хотя функции конструктора мус t имеет то же имя, что и класс, который он создает, и это, по-видимому, создает путаницу, () в new Cat() должен служить в качестве подсказки, что он на самом деле является конструктором, а не классом