0
私は同じように見える2つのjavascriptコードを持っています。の違い:and = = javascript function
最初のものは次のようになり、2行目、101行目、102行目になります。
<script>
var val = 100;
var counter = {
val : 1,
func1 : function() {
this.val += 1;
alert('func1() this.val: ' + this.val);
func2 = function() {
this.val += 1;
alert('func2() this.val: ' + this.val);
func3 = function() {
this.val += 1;
alert('func3() this.val: ' + this.val);
};
func3();
};
func2();
}
};
counter.func1();
</script>
次のコードは2番目のコードです。結果は2,3,4
<script>
var val = 100;
var counter = function() {
val = 1;
func1 = function() {
this.val += 1;
alert('func1() this.val: ' + this.val);
func2 = function() {
this.val += 1;
alert('func2() this.val: ' + this.val);
func3 = function() {
this.val += 1;
alert('func3() this.val: ' + this.val);
};
func3();
};
func2();
};
func1();
};
counter();
</script>
です。私の意見では、この違いは、マークから来ています。=。そうですか?
Q.技術的には、この違いはレキシカル環境に関連していますか?
Q.スコープや閉鎖に違いがあると思われますか?
Q.上記の質問に理由がない場合、理由は何でしょうか?
オブジェクトにプロパティまたは変数を割り当てるには、 ':'を使用します。そしてそれらを非オブジェクトで割り当てる '='。 – choz
javascriptの 'scope'について聞いたことがありますか? –
[JavaScriptの変数の範囲は何ですか?](http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript) –