2014-10-17 48 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; 此对象/函数内的语句将被视为局部变量,并且只能在该对象/函数内进行访问。

相关问题