Как JavaScript делает ООП? - PullRequest
       11

Как JavaScript делает ООП?

2 голосов
/ 09 октября 2010

Я учусь создавать объекты в JavaScript. Когда я делаю это ...

var Person = {
   name: "John Doe", 
   sayHi: function() {
   alert("Hi");
   }
};

Я знаю, что я создаю экземпляр класса Person, но я не знаю, как (или если) я могу использовать этот класс для создания другого экземпляра. Какие функции ООП есть в JavaScript? Имеет ли он те же функции OO, что и другие языки, такие как Java или Ruby? Может кто-нибудь объяснить, как JavaScript работает в ООП?

Ответы [ 5 ]

3 голосов
/ 09 октября 2010

JavaScript не использует классы. Он использует прототипирование. Есть несколько способов создания новых объектов.

Вы можете сделать:

var john = Object.create(Person);

Или вы можете использовать ключевое слово new:

function Person() = {
   this.name = "John Doe", 
   this.sayHi = function() {
     alert("Hi");
   }
};

var john = new Person();

Для получения дополнительной информации читайте:

3 голосов
/ 09 октября 2010

В вашем примере вы не создаете экземпляр класса Person. Вы создаете переменную с именем «Person», которая содержит анонимный объект.

Чтобы создать класс типа Person, вы должны сделать:

function Person() {
   this.name = "John Doe", 
   this.sayHi =  function() {
   alert("Hi");
   }
}

var somebody = new Person();

В противном случае я думаю, что ваш вопрос слишком широкий и сложный. В Интернете есть много статей и учебников по javascript (и книг в книжных магазинах). Пойдите и изучите их, и если вы не понимаете что-то конкретное, то пишите здесь.

2 голосов
/ 09 октября 2010

Крокфорд имеет несколько хороших объяснений здесь и т. Д.

0 голосов
/ 09 октября 2010

Ознакомьтесь со статьей Орана Луни по этому вопросу: http://oranlooney.com/classes-and-objects-javascript/

У него есть несколько хороших статей на Javascript.

...