2017-03-30 8 views
1

可能であれば、どのようにして関数コンストラクタ関数を作成しますか?プロトタイプメソッドも持つコンストラクタです。Javascriptで関数コンストラクタ関数を作成する

私は

Function Thing(val) { this.prop1 = val } 
Thing.prototype.action = function()... 

つまりオブジェクトコンストラクタ関数を作成する方法を知っている。しかし、プロトタイプの小道具やメソッドを使用して新しい機能を作成するために、私が思い付くことができる最高のは、例えば、次のとおりです。

Function Func(val) { 
    var func = function(x) {return val*x}; 
    func.val = val; 
    func.__proto__ = proto; 
    return func; 
} 

const proto = { 
    product: function(x) { return this.val*x }, 
}; 

コードの衛生上の理由から、より洗練されたソリューションがありますか?

+0

'Object.getPrototypeOfを()'してみてください – zerkms

答えて

0

...

function Person(name) { 
    this.name = name; 
} 
// create a new instance 
var person = new Person('codechimp'); 
console.log('person.constructor is ' + person.constructor); 
関連する問題