Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запарка над наследованием (https://javascript.ru/forum/misc/13467-zaparka-nad-nasledovaniem.html)

UnderShot 29.11.2010 20:48

Запарка над наследованием
 
Есть код:
var ser={};
ser.object=function(a){
	this.object=typeof a=="string"?document.getElementById(a):a;
}
var j=ser.object.prototype;

j.alert=function(message){
	alert(this.object)
}

/* началось месево */
j.alert.add=function(m){
	alert(m+": "+this.object)
}
var a=new ser.object(document.createElement("div"));
a.alert("Тест") // [object HTMLDivElement]
a.alert.add("Тест") // Тест: undefined
Вообщем, не получается передать j.alert.add object.

Kolyaj 29.11.2010 21:33

А почему вы решили, что this внутри a.alert.add будет равен a?

UnderShot 29.11.2010 21:42

Я всего лишь предположил, и написал, что нужно, чтобы передавался метод add брал this.object у родителя (alert).

Kolyaj 29.11.2010 21:44

Цитата:

Сообщение от UnderShot
чтобы передавался метод add брал this.object у родителя (alert)

Отличный пример того, что без запятых предложение не читается вообще.

При вызове a.alert.add, add будет вызвана в контексте a.alert

UnderShot 30.11.2010 11:00

Цитата:

Сообщение от Kolyaj
При вызове a.alert.add, add будет вызвана в контексте a.alert

Знаю, поэтому и спрашиваю, можно ли как-нибудь передать this.object в a.alert.add, не запуская функции a.alert()?


Часовой пояс GMT +3, время: 06:38.