从变量内部与变量外部调用对象 属性 (JS)
Calling an object property from within a variable vs outside a variable (JS)
这两个调用有什么区别?它看起来几乎相同,但 运行 它告诉我不同。从变量内部和变量外部调用 属性 似乎在调用不同的东西,但我不确定如何或为什么。
PS。奶酪是一个布尔值 属性 设置为 false。
toggleCheese: function(position) {
var pizza = this.pizza[position].cheese;
pizza = !pizza;
}
对
toggleCheese: function(position) {
var pizza= this.pizza[position];
pizza.cheese = !pizza.cheese;
}
让我们把它精简到重要的部分。假设您有一个对象代表一个非常简单的披萨,
{ cheese: false }
。我们将创建一个变量 pizza
并将其指向对象:
var pizza = { cheese: false };
然后再创建一个变量cheese
,指向对象的cheese
的值 属性:
var cheese = pizza.cheese;
现在,这两者的区别:
cheese = true;
pizza.cheese = true;
是前者的意思是“将变量cheese
指向true
”,后者的意思是“取变量pizza
指向的值,将其cheese
属性 到 true
”。一个只影响 cheese
变量,另一个影响你想要的披萨对象。换句话说,这些实际上是两种不相关的赋值操作形式:
<variable> = <value>;
<value>.<property> = <value>;
如果要设置变量,使用变量形式;如果要设置 属性,请使用 属性 形式。
这两个调用有什么区别?它看起来几乎相同,但 运行 它告诉我不同。从变量内部和变量外部调用 属性 似乎在调用不同的东西,但我不确定如何或为什么。
PS。奶酪是一个布尔值 属性 设置为 false。
toggleCheese: function(position) {
var pizza = this.pizza[position].cheese;
pizza = !pizza;
}
对
toggleCheese: function(position) {
var pizza= this.pizza[position];
pizza.cheese = !pizza.cheese;
}
让我们把它精简到重要的部分。假设您有一个对象代表一个非常简单的披萨,
{ cheese: false }
。我们将创建一个变量 pizza
并将其指向对象:
var pizza = { cheese: false };
然后再创建一个变量cheese
,指向对象的cheese
的值 属性:
var cheese = pizza.cheese;
现在,这两者的区别:
cheese = true;
pizza.cheese = true;
是前者的意思是“将变量cheese
指向true
”,后者的意思是“取变量pizza
指向的值,将其cheese
属性 到 true
”。一个只影响 cheese
变量,另一个影响你想要的披萨对象。换句话说,这些实际上是两种不相关的赋值操作形式:
<variable> = <value>;
<value>.<property> = <value>;
如果要设置变量,使用变量形式;如果要设置 属性,请使用 属性 形式。