ООП в 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, время: 04:10. |