javaScript中物件的轉殖

2021-07-02 07:06:53 字數 1382 閱讀 7838

今天做了一道題,題目如下:

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物件不同。你可以按照下面的格式來呼叫...