Создание прототипа функции
В общем я пытаюсь написать функцию имеющюю свои свойства и методы.Вот упрощенный код, который я написал.
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, время: 22:43. |