2014-10-17 82 views
3

雖然分配在JavaScript中值我碰到這個javascript屬性和javascript變量有什麼區別?

var obj = { 
    resultCodeId: data[i].resultCodes[j].resultCodeId 
}; 
var resultCodeId= data[i].resultCodes[j].resultCodeId; 

如何做「:」和「=」從根本上不同的JavaScript CAN變量也有屬性或在javascript中有屬性只是對象?

+3

第一行甚至沒有有效的JavaScript。 – undefined 2014-10-17 08:58:05

+0

':'只能在JavaScript對象中使用。 – 2014-10-17 08:58:55

+0

@Vohuman:對不起,讓我編輯var部分 – RahulB 2014-10-17 08:59:35

回答

4

=用於對象屬性或全局/局部變量賦值。 :僅用於對象定義處的屬性分配。

另外: 您可以delete屬性。 你不能delete一個變量。

var obj = { 
    p1: 'im p1', 
    p2: 2 
}; 
obj.p1 = 'im updated p1'; // assign a new value to object property 
var v = 'just a var'; // is global outside a function and local inside a function 

delete obj.p1; // is ok 
delete v; // is not ok 
+0

所以基本的區別就在於刪除?沒有其他差異? – RahulB 2014-10-17 09:06:15

+0

@rahulb - 這是一個變量和對象屬性之間的細微差別 - 我認爲主要答案是對象屬性賦值之間的差異。冒號只用於對象定義(不是變量賦值) – 2014-10-17 09:14:00

+0

所以冒號不能用來重新賦值給屬性?首次將值賦給屬性時,它總是被使用嗎?那麼我們將如何覆蓋這些屬性? – RahulB 2014-10-17 09:35:56

1

':'用於以對象方式將鍵值指定爲鍵/值對。 '='是一個賦值操作符。它將一個變量賦值給一個值。

是的變量可以有屬性,因爲變量可以分配一個對象。

1

屬性通常與JavaScript對象關聯。

var obj = { 
    name: 'test', --> property 
    getName: function(){ --> property 
    return this.name 
    } 
}; 

相反的變量用在函數內部,甚至在它們之外。

var global = "string"; --> variable 
function test(){ 
    var local = "string"; --> variable 
} 

但是,屬性和變量的基本思想保持不變,即存儲或指向內存中的對象。

  • ':'用於任何時候想要將屬性關聯到對象。

  • '=' 只要你想存儲的實際數據或存儲

0

讓我們把你的例子進行說明參考使用,

  • VAR OBJ = {resultCodeId: data [i] .resultCodes [j] .resultCodeId}; 這意味着resultCodeId是「obj」對象的標記。您可以像obj.resultCodeId那樣訪問它。
  • 變種resultCodeId =數據[I] .resultCodes [j]的.resultCodeId; 這是一個全局變量,所有的全局變量object.so您可以訪問它像window.resultCodeId窗口的屬性。

此外:

變種resultCodeId =數據[I] .resultCodes [J]。resultCodeId; 此對象/函數內的語句將被視爲局部變量,並且只能在該對象/函數內進行訪問。

相關問題