基本資料型別(string,number,boolean)傳值,複雜資料型別按引用傳遞(傳址)傳值例:var a = 1; b = a; b++; 結果:a = 1,b = 2;
傳址例:var a = [0, 1]; b = a; b.push(2); 結果:a = [0, 1, 2]; b = [0, 1, 2]
//方法一 slice
var a = [0, 1];
b = a.slice();
b.push(2);
alert(a+'|'+b); //0,1|0,1,2
//方法二 concat
var a = [0, 1];
b = a.concat();
b.push(2);
alert(a+'|'+b); //0,1|0,1,2
//方法三 for in
var a = [0, 1], b = ;
for (var n in a)
b.push(2);
alert(a+'|'+b); //0,1|0,1,2
functiona(name)
a.prototype.getname = function
();
functionextent(o, p)}//
usefunction
b(name)
extent(b.prototype, a.prototype);
functionb(name)
//f為了只繼承原型,避免引用相互影響
function
f(){}
f.prototype =a.prototype;
b.prototype = new
f();
b.prototype.constructor = b;
functioncloneobj(o);
f.prototype =o;
return
newf();
}var a = ;
var b = cloneobj(a);
傳值和傳址
let dadproto let sonproto dadproto sonproto.name 李四 console.log sonproto name 李四 age 20 console.log dadproto name 李四 age 20簡單資料型別 傳值 let a 10 let b a ...
傳值和傳址
在vb中呼叫函式或過程時,傳遞引數有兩種方式 傳址和傳值。其中vb預設為傳址方式,關鍵字byref一般可以省略。byref a as integer 表示引數a以傳址方式傳遞給函式或過程 byval a as integer 表示引數a以傳值方式傳遞給函式或過程 傳址就是把乙個存放資料的記憶體位址傳...
傳值,傳址和傳引用
傳值方式 將實參的值拷貝給函式或方法,在函式內對形參進行操作,操作的物件是實參的拷貝,對實參本身沒有影響,在函式結束返回後,形參被丟棄釋放,實參的內容不會被改變。c 一條基本原則 在預設情況下,引數只能以值傳遞的方式給函式,被傳遞到函式的只是變數的值,永遠不會是變數本身。void exchange ...