2013-08-12 2 views
0

В чем разница между этим:Различные типы создания функций для JavaScript

function Hero(options) { 
    options = options || {} 
    this.nickname = options.nickname || 'Default 1'; 
    this.hp = options.hp || '50' 
} 

Hero.prototype.walk = function() { 
    console.log('Hero walked'); 
} 

И это:

function Hero(options) { 
    options = options || {} 
    this.nickname = options.nickname || 'Default 1'; 
    this.hp = options.hp || '50' 

    this.walk = function() { 
    console.log('Hero walked') 
    } 
} 

Есть ли младшее выигрыш в использовании prototype?

+2

Да, метод 'walk' создается только один раз и делится всеми экземплярами' Hero' – Ian

+0

Второй - это недопустимый синтаксис. – SLaks

+0

@SLaks Как так? Я думаю, что я только что видел редактирование, но не уверен, что изменилось. – Ian

ответ

0

Методы, определенные с помощью Hero.prototype.myMethod = function() {}, также будут доступны объектам, которые являются дочерними объектами Hero.

Смежные вопросы