需要约奇双赋值语法我有以下代码:澄清在JavaScript
var $scope, modelValue;
modelValue = $scope.model = {};
谁能请解释这双重分配在JavaScript是什么意思?
为什么需要第二个作业?
需要约奇双赋值语法我有以下代码:澄清在JavaScript
var $scope, modelValue;
modelValue = $scope.model = {};
谁能请解释这双重分配在JavaScript是什么意思?
为什么需要第二个作业?
此行modelValue = $scope.model = {};
正是这样写的:
$scope.model = {};
modelValue = $scope.model;
当编写一个表达式:variable = expression
,表达被分配之前评估,所以这种说法是从右向左计算:
variable = (variable = expression) // inner expression
我发现这个文档:http://msdn.microsoft.com/en-us/library/1w2h1k9x(v=vs.94).aspx:
=运算符的行为与其他运算符相似,因此包含它的表达式具有值。这意味着您可以按如下方式链接赋值运算符:j = k = l = 0。在这种情况下,j,k和l等于零。
有了这个说法,你必须通过modelValue
直接引用空对象和$scope
命名空间/对象下的模型设置为同一个对象。如果您需要取消引用该模型,则应通过直接引用更快。为了缩短事情(用两个变量引用同一个对象),你做了一个双重任务。
为什么?以免你两次写作。 –