方法 1
function Person(n,a) {
this.name = n;
this.age = a;
if(このインスタンス){
alert('新しい通話');
alert ('関数呼び出し ');
}
}
var p = new Person('jack',30) // --> 新しい呼び出し
> 関数呼び出し
メソッド 2
function person(n,a){
this.name = n;
this.age = a;
if(thisinstanceofarguments.callee){
alert('新しい呼び出し');
}else{
alert('関数呼び出し');
}
}
var p = new Person('jack',30); > new call
person(); // --> 関数呼び出し
コードをコピー
コードは次のとおりです。
alert('関数呼び出し');
}
var p = new Person(' jack',30); // --> new call
;ただし、関数/クラスが次のように使用されている場合 独自のインスタンス オブジェクトのメソッドを呼び出すときに問題があります
コードをコピー
コードは次のとおりです:
function person(n,a){
}
var p = 新しい人('jack',30); // 最初に新しいオブジェクトを作成します
p.fn = person // 独自のオブジェクトの fn 属性に関数/クラスを割り当てます p
p.fn();この文を呼び出すと、「これは新しい呼び出しです」というプロンプトが表示されますが、これは明らかに間違っています
もっと良い方法はありますか?