Создание прототипа функции
В общем я пытаюсь написать функцию имеющюю свои свойства и методы.Вот упрощенный код, который я написал.
var a = function(){
/* ... код функции ... */
this.smth();
}
a.prototype = {
get:function(name){
return name.toLowerCase();
},
smth:function(){
/* ... код функции ... */
}
};
var b = a.get("name");
var func = new a();
Когда вызываю функцию все в порядке, а когда вызываю один из ее методов выдает ошибку. Пожалуйста объясните как нужно работать с прототипами |
какую ошибку выдает? как вызываешь?
|
jsru_, вызываю так
var b = a.get("name");
выдает TypeError: Object function (){ /* ... код функции ... */ this.smth(); } has no method 'get' |
попробуй
a.get("name").bind(a); |
Цитата:
Так зато можно:
a.prototype.get("name");
|
Chiz,
:-?
var a = function(){
/* ... код функции ... */
this.n = 0;
this.smth();
}
a.prototype = {
get:function(name){
return name.toLowerCase();
},
smth:function(){
alert(this.n++)
/* ... код функции ... */
}
};
var func = new a();
var b = func.get("NAME");
alert(b);
func.smth();
func.smth();
func.smth();
var c = new a();
c.smth();
|
danik.js, а можно как-нибудь сделать, чтобы спокойно вызывать методы объекта без prototype?И писать:
a.get(); Вместо a.prototype.get(); /* или */ var o = new a(); o.get(); |
var a = function () {}
a.prototype.get = function(name) {
alert(name);
}
var b = new a();
b.get("рони");
|
Цитата:
|
| Часовой пояс GMT +3, время: 08:20. |