0

もしも

function foos(){alert(this)}
x=new foos() which is==={foo();}//as this keyword points to Object object

そのため、その新しいオブジェクトのメソッドとしてfoosと言うことができますが、これを行うと

x.foos();//after the object is initialized,it dont work at all why?
4

2 に答える 2

0

このコードは、そのオブジェクトのプロパティとして定義されていないfoosonのインスタンスを作成します。foos

オブジェクトにプロパティを追加したい場合は、次のようにしてください。

function foos(){
  this.myProp = "Hello";
}

var x = new foos();

alert(x.myProp);

メソッドをオブジェクトに追加する場合は、次を使用します。

foos.prototype.myFunc = function(){
  alert(this.myProp);
};

x.myFunc(); //alerts Hello
于 2013-01-29T09:46:11.603 に答える
0

「foos」はコンストラクター関数であり、新しいオブジェクト メソッドの一部にはなりません。メソッドを追加したい場合は、次のように使用できます。

function MyClass() { }

MyClass.prototype.foos = function () {
    alert(this);
}

その後:

var x = new MyClass();
x.foos();
于 2013-01-29T09:46:35.500 に答える