0
これらの3つのコードブロックを最初に見てください。node.jsの外部引数varを変更してください
コードブロック1:
var t1 = function(aaa) {
setTimeout(function(){
a = 'bb';
aaa.push(a);
}, 1000);
}
var t3 = function() {
var aa = new Array;
aa[0] = 'aa';
console.log(aa);
t1(aa);
setTimeout(function(){
console.log(aa);
}, 3000);
}
t3();
出力: [ 'AA'] [ 'AA'、BB '']
コードブロック2:
var t1 = function(aaa) {
setTimeout(function(){
aaa[1] = 'bb';
}, 1000);
}
var t3 = function() {
var aa = new Array;
aa[0] = 'aa';
console.log(aa);
t1(aa);
setTimeout(function(){
console.log(aa);
}, 3000);
}
t3();
出力: [ 'AA'] [ 'AA'、BB '']
コードブロック3:
var t1 = function(aaa) {
setTimeout(function(){
aaa = aaa.concat('bb');
}, 1000);
}
var t3 = function() {
var aa = new Array;
aa[0] = 'aa';
console.log(aa);
t1(aa);
setTimeout(function(){
console.log(aa);
}, 3000);
}
t3();
出力: [ ' aa '] ['aa']
'concat'メソッドは引数で 'aaa' var passを変更できないという問題がコードブロック3です。
'concat'、 'push'、およびdirect modifyの違いは何ですか?