newいったいnewは何を出しましたか?

861 ワード

サイの本9.1は次のように書いています.
The new operatomust beフォロワーby a function invocation.It creates a new object、withのproperties and then invokes the function、passing the new object a s the value of the this keyword.A function designed to be used with the new operators is cared a construct or simply.A construct's ject.A construct's ject initiaze the nelizables Problept
javascriptのnewとjavaのnewの違いはやはり大きいです.同じものに理解しないでください.
実際には、どのfunctionもnewの後ろに付いてきます.例えば、

function test() {
    var o = new Con("hello 2011");
}

function Con(msg) {
    alert("this is the message: " + msg);
}
コンの本意はコンストラクタではないが、文法的には間違っていない.test()関数を実行すると、実際にはまず普通のObjectを作成して、それからCon()関数を実行します.ただし、このときCon()関数はObjectの一つの方法として扱われ、o.son(msg)に相当します.だからこの時関数の中のthisはoです.(もちろん上の例では、関数の中にthisはありません)