ブラウザ以外の環境(Titanium Studio)に次のコードがあり、result1とresult2の両方が動作し、同じ結果を返し、同じタイプ(オブジェクト)。javascript inside titanium studio: 'new' in objects
どのように異なっていて、どのように違うのか説明できますか?
私のケースでは、内部名1はローカルコンテキストへの参照がありません(これはそこにはローカル変数だけありません)。そして、私はすべてのコードを 'new'私は以下のような状況があるとき。
var name1 = function(some_arg){
// some stuff
return result; // returns an object
}
var result1 = name1('some_value');
var result2 = new name1('some_value');
typeof(result1); // returns object
typeof(result2); // returns object
ありがとうございます!
以下の編集:オリジナルの質問に回答しました。私は今、関連するものを明確にするために探しています。下記のコメントに関連
コード:
function Name1 (name){
this.name = name;
}
var version1 = new Name1('joey');
version1.name;
var Name2 = function(name){
this.name = name
}
var version2 = new Name2('joey');
version2.name;
ありがとう! new
を使用しているときnew
を使用しない場合、それがグローバルオブジェクトにバインドされている間
素晴らしい。ありがとう!私は、コンストラクタとしての機能を使用していた場合である。 \t VAR名=関数(){} 同じ: \t関数名(){} \t?ありがとうございます。 ありがとうございます。 – svdsvd
いいえ、関数を変数に代入するだけです。関数名(){}と似ています(スコープの上部に持ち上げることを除いて) - 関数をコンストラクタとして使用することは、 – ThiefMaster
すみません、私はちょっと混乱しています。私は質問を言い換えるつもりです...私は上の元の質問に新しいコードを追加しました(新しいコードは大胆な編集コメントの下にあります)。したがって、上記のversion1.nameとversion2.nameの両方が 'joey'を返します。彼らは違うの?もしそうなら、どうですか?ありがとう! – svdsvd