最初にvarを使用
function testCode(some)
{
var something = some;
}
これを使用する2番目
function testCode2(some)
{
this.something = some ;
}
最初にvarを使用
function testCode(some)
{
var something = some;
}
これを使用する2番目
function testCode2(some)
{
this.something = some ;
}
最初の関数でsomething
は、プライベート(ローカル) 変数です。これは、関数の外では完全にアクセスできないことを意味します。一方、2番目はパブリックインスタンス変数です。変数が設定されるコンテキストは、関数の呼び出し方法によって異なります。
> testCode2("foo"); // this will refer to document.window
> something
"foo"
>> var obj = new testCode2("foo"); // this will refer to the new object
>> something
ReferenceError: something is not defined
>> obj.something
"foo"
これらの関数が関数として使用される場合、 this キーワードは変数を静的にします。関数が 2 回呼び出された場合、関数の実行が終了すると、最初のサブジェクトが変数データを消去しますが、 this.something は引き続きその値を保持します。
それらをクラス コンストラクターとして使用している場合、var はプライベート変数を定義し、これはパブリック変数を宣言します。
このフィドルを参照してください:http://jsfiddle.net/UUFuX/1/