次の API を作成するとします。
var api = function(){}
api.prototype = {
constructor: api,
method: function() {
return this;
}
};
さて、これは次のように機能します:
var myApi = new api();
myApi.method();
new
しかし、これが機能するように、キーワードをオプションにしたいとしましょう:
api().method();
私は頭から離れます:
var api = function() {
if ( !(this instanceof api) ) {
return new api();
}
};
しかし、これはどういうわけか簡単に感染するのでしょうか、それともこの方法を使用する際に他の危険性があるのでしょうか? f.ex jQuery はこれを行わない (コンストラクターをプロトタイプ メソッドにオフロードする) ことを知っているので、これを行わない正当な理由があると確信しています。私は彼らを知りません。