ООП в JavaScript
Изучаю JS по вашему курсу http://learn.javascript.ru/ (спасибо, замечательный курс), но тем не менее остаются вопросы
Какая разница между var Foo = { name: 'Vasya', func: function() { doSomething(); } } и function Foo() { this.name = 'Vasya'; this.func = function() { doSomething(); } } var FooObj = new Foo(); Также не очень понял про члены объектов: function Foo() { var name = ''; // 1 name = ''; // 2 this.name = ''; // 3 } Чем они отличаются, и как писать в промышленном коде? |
В первом случае ты создаешь объект. Во втором - конструктор объектов.
К слову функцию и статичные свойства нужно вынести в прототип. И имена объектов нужно писать с маленькой буквы, а с большой - только конструкторы. Разница примерно такая. Если тебе нужен один предмет, скажем стул - ты берешь и делаешь его. Если тебе нужно много стульев, то ты делаешь станок (конструктор) и с легкостью создаешь столько стульев сколько хочешь. В js при доступе к свойству объекта нужно указывать ключевое слово this обязательно. А var name - это объявление локальной переменной. |
Спасибо за ответ, я еще не дошел до прототипов.
Можно поподробнее про статичные/нестатичные функции и свойства? |
Часовой пояс GMT +3, время: 01:09. |