спасибо, это помогло мне избавиться от узла, который у меня был в мыслях
рий 1 - все работает:
var AwesomeObject = function()
{
var self = this;
self.whatstuff = 'really awesome';
}
AwesomeObject.prototype.doStuff = function()
{
var self = this;
console.log('i did '+self.whatstuff+' stuff');
return self;
}
var awesome = new AwesomeObject(); //returns a new AwesomeObject
awesome.doStuff(); // prints 'i did really awesome stuff' on the console
Теперь я хочу, чтобы это даже удивительно:
var AwesomeObject = function()
{
var f = function() { console.log('i am awesome'); }
var self = f;
self.whatstuff = 'really awesome';
return self;
}
AwesomeObject.prototype.doStuff = function()
{
var self = this;
console.log('i did '+self.whatstuff+' stuff');
return self;
}
var awesome = new AwesomeObject(); //returns the interal f object
awesome(); // prints 'i am awesome'
awesome.doStuff(); // throws an error
new AwesomeObject должен сам возвращать исполняемую функцию, чтобы я мог сказать «awesome ();»
но я хочу, чтобы это унаследовалоAwesomeObject.prototype
, слишком.
добавлениеself.prototype = AwesomeObject.prototype;
не помогает.
var AwesomeObject = function()
{
var f = function() { console.log('i am awesome'); }
var self = f;
self.whatstuff = 'really awesome';
self.prototype = AwesomeObject.prototype;
return self;
}
хорошо, я могу скопироватьAwesomeObject.prototype
функции - одна за другой - в сферуf
var AwesomeObject = function()
{
var f = function() { console.log('i am awesome'); }
var self = f;
self.whatstuff = 'really awesome';
self.doStuff = function() { AwesomeObject.prototype.doStuff.apply(self,arguments); }
return self;
}
но я думаю, что должен быть лучший путь, лучший образец, что это?
эта проблема сводит меня с ума, помощь будет очень признателен.
в общем: как создать функциональный объект, который
может быть создан с новымвозвращает объект функции, который может быть выполненнаследует все свойства и методы данного прототипа?
есть ли способ?
спасибо Франц