我正在從事一個涉及從其他函數構造函數的項目。我有寫作課程來簡化事情的想法,但是我沒有使用__proto__
就無法使用它。自定義函數類
這裏基本上是我的理想是什麼。
function MyFunction() {
// ...
}
var myFn = new MyFunction();
myFn(); // executes without error
myFn instanceof MyFunction; // returns true
下面的代碼不會只是使用__proto__
function MyFunction() {
var fn = function() { return 'hello'; };
fn.__proto__ = this;
return fn;
}
var myFn = new MyFunction();
alert(myFn()); // hello
alert(myFn instanceof MyFunction); // true
這裏的東西我一直在使用valueOf
function MyFunction() {
this.fn = function() { return 'hello'; };
this.valueOf = function() { return this.fn; };
}
var myFn = new MyFunction();
alert(myFn instanceof MyFunction); // true
alert(myFn.valueOf()()); // hello
alert(myFn()); // error
試着和這裏的其他東西延伸到包含的所有屬性的功能MyFunction
。我不想使用__proto__
,因爲它不是標準的。此外,這是一個怪胎的想法,我真的想讓它工作,但如果這是不可能的,我會活下去。但我想我的問題是,我想做什麼?
無賴,我也聽到了某種形式的'__proto__'將在未來ES正式加入了。我想我只是在我的時間之前:(噢,好吧。 – SpaceFace