function User(first, last){
if ( !(this instanceof arguments.callee) )
return new User(first, last);
this.name = first + " " + last;
}
var name = "Resig";
var user = User("John", name);
assert( user, "This was defined correctly, even if it was by mistake." );
assert( name == "Resig", "The right name was maintained." );
インスタンスが new 演算子を使用して作成されているかどうかを確認するには、コンストラクターでこれらを行います。
if ( !(this instanceof arguments.callee) )
また
if ( !(this instanceof ___) )
また
if ( !(this instanceof User) )
このフォーラムで、arguments.callee が減価償却され、代わりに apply メソッドまたは call メソッドを使用する必要があることを読みました。
そのオブジェクトのインスタンスが call メソッドまたは apply メソッドを使用しているかどうかを確認するにはどうすればよいですか?