今天做了一道題,題目如下:
var obj =;
var newobj = obj;
newobj.value += obj.key;
alert(newobj.value);
問題是結果是alert的結果是多少;
這個地方是物件的引用;2個物件會共用乙個位址,物件名就是該物件的首位址,這個地方相當於陣列;
位址相同,改變obj的屬性值那麼newobj的值也會變;反之一樣,改變newobj的值obj的屬性值也會變;
這題答案是"21";
有時候我們需要2個一樣的物件,2個對像有自己的位址,改變其中之一,另乙個不會有變化;這種方法就是轉殖;
可以轉殖的有;基礎型別,陣列,物件;
基礎型別之間的轉殖,我們直接給他賦值就可以;
var a = 5;
var b = a;
alert(b); // 顯示5
a = 6; //改變a的值
alert(b); //顯示5 轉殖成功
陣列的轉殖有2中,第一種:
var arr = [1,2,3,4];
var b = new array();
b = arr;
alert(b); // 顯示 1,2,3,4
arr = [4,3,2,1];
alert(b); //顯示 1,2,3,4 轉殖成功
這個地方的陣列名的賦值操作跟物件不一樣,雖然陣列也是物件的一種;
第二種:
var arr = [1,2,3,4];
var b = new array();
b = arr.slice(0); // .splic(start,end),返回查詢到的結果start是必填,從哪個位置開始查詢,end,可選,不填表示到陣列結尾
alert(b); // 顯示1,2,3,4
arr=[4,3,2,1];//改變arr的值
alert(b); //顯示1,2,3,4 轉殖成功
物件的轉殖:
建立乙個函式轉殖所有物件:
function clone(obj)else{
if(obj instanceof array){
newobj =;
for(var i=0;i
var p = document.getelementsbytagname("p")[0];
var c = p.clonenode();//轉殖p節點
var c = p.clonenode(true);//轉殖p節點,深度轉殖,轉殖節點以及節點下面的子內容。
JavaScript中的物件
物件的實質是一組名值對,其中值可以為資料或函式。當值為資料時,對應的名被稱為物件的屬性 當值為函式時,對應的名被稱為物件的方法。通過object 類建立物件let person new object person.name guagua person.age 18 person.say functi...
JavaScript中的String物件
string物件提供的方法用於處理字串及字元。常用的一些方法 charat index 返回字串中index處的字元。indexof searchvalue,fromindex 該方法在字串中尋找第一次出現的searchvalue。如果給定了fromindex,則從字串內該位置開始搜尋,當searc...
JavaScript中的Math物件
math物件 math物件為我們提供了許多數學相關的功能,例如獲得乙個數字的平方或者產生乙個隨機數。math物件和date與string物件有兩點不同 l你不能顯式的建立乙個math物件,你只直接使用它就可以了。lmath物件不儲存資料,和string 與date物件不同。你可以按照下面的格式來呼叫...