Javascript 从变量内部调用对象属性与从变量外部调用对象属性(JS)
这两个电话有什么区别?它看起来几乎相同,但运行它告诉我不同。从变量内部调用属性和从变量外部调用属性似乎是在调用不同的东西,但我不确定如何调用或为什么调用 PS.Cheese是一个布尔属性,设置为falseJavascript 从变量内部调用对象属性与从变量外部调用对象属性(JS),javascript,variables,storage,Javascript,Variables,Storage,这两个电话有什么区别?它看起来几乎相同,但运行它告诉我不同。从变量内部调用属性和从变量外部调用属性似乎是在调用不同的东西,但我不确定如何调用或为什么调用 PS.Cheese是一个布尔属性,设置为false toggleCheese: function(position) { var pizza = this.pizza[position].cheese; pizza = !pizza; } vs }让我们把这个问题简化到重要的部分。假设您有一个表示非常简单的比萨饼的对象,
toggleCheese: function(position) {
var pizza = this.pizza[position].cheese;
pizza = !pizza;
}
vs
}让我们把这个问题简化到重要的部分。假设您有一个表示非常简单的比萨饼的对象,
{cheese:false}
。我们将创建一个变量pizza
,并将其指向对象:
var pizza = { cheese: false };
然后制作另一个变量cheese
,并将其指向对象的cheese
属性的值:
var cheese = pizza.cheese;
现在,这两者之间的区别是:
cheese = true;
前者表示“将变量cheese
指向true
”,后者表示“将变量pizza
指向的值,并将其cheese
属性指向true
”。其中一个只影响cheese
变量,另一个影响您想要的pizza对象。换句话说,这实际上是两种不相关的赋值操作形式:
<variable> = <value>;
<value>.<property> = <value>;
=;
. = ;
如果要设置变量,请使用变量窗体;如果要设置属性,请使用属性表单。这是一个稀疏的答案,但我找不到好的副本。因为少一些误导是很重要的。非常感谢你,你的答案是完美的!
pizza.cheese = true;
<variable> = <value>;
<value>.<property> = <value>;