Я не совсем получаю создание объектов и методы добавления/расширения в JavaScript. Я знаю, что все является объектом и использованием функций в качестве конструкторов, но я не совсем получаю прототип и создаю/вызываю новые методы.Доступ к объектам и прототипу в Javascript
var c1 = {
name: "Neil",
};
var c2 = function() {
this.name = "Neil";
};
С и выше, я могу добавить новый материал:
c1.town = "a town";
c2.town = "a town";
c1.setTown = function(newTown) { this.town = newTown;};
c2.setTown = function(newTown) { this.town = newTown;};
Где я опрокинуться это с функцией подхода я могу это сделать:
c2.prototype.setTown2 = function(newTown) { this.town = newTown;};
c3 = new c2();
c3.setTown2("new3");
1: Что такое разница между setTown и setTown2 и почему для c3 я могу вызвать c3.town = "x" и c3.setTown2 ("x"), но не вызвать c3.setTown ("x"); ?
2: Кажется, у меня нет доступа к «прототипу» для c1 (подход литералов-конструкторов), почему это?
спасибо.
В принципе, это потому, что 'c1' является объектом, а' c2' является конструктором. Я пишу более подробный ответ прямо сейчас. –