В чем различие добавления свойств/функций классу
Можете подсказать в чем различие добавление свойств/функций классу
Например
function user(){
this.getName = function(){
return "Vasya";
}
}
var u = new user();
u.getName();
или все то же только
function user(){
}
user.prototype.getName = function(){
return "Vasya";
}
var u = new user();
u.getName();
Надеюсь я не чушь написал:D |
В первом случае используется так называемый перегруженный конструктор. По факту, объект не имеет никаких свойств, они у него появляются только в момент вызова конструктора. Этот метод не рекомендуется использовать по различным соображениям.
|
Цитата:
|
Цитата:
|
Цитата:
Да и есть такая штука, как сall и apply. |
В случае перегруженного конструктора невозможно достучаться к свойствам объекта, потому что их не существует.
|
Цитата:
|
function Class() {
this.property = "property";
this.method = function () {};
}
Каким образом я могу получить доступ к property или method? |
Цитата:
var o = {};
Class.call(o);
// а здесь проверять, есть ли у "o" соответствующие методы и свойства
|
Цитата:
|
| Часовой пояс GMT +3, время: 11:58. |