new
オペレーターを理解しようとしています。次の関数を見てください。
var _new = function(fn) {
var obj = Object.create(fn.prototype);
fn.apply(obj);
obj.constructor = fn; // <--- EDIT: unnecessary
return obj;
};
そのように適用できます:
var Test = function(){
this.foo = 1;
};
var instance = _new(Test);
もちろん、任意の数の引数に簡単に拡張できます (単純にしようとしているだけです)。
new
キーワードのように機能するようです。では、もしあれば違いは何ですか?new
オブジェクトに対して他の演算子は何をしますか?