繁体   English   中英

这两个JavaScript对象声明之间的区别

[英]Difference between these two JavaScript Object declarations

谁能告诉我这样做之间的区别是什么:

$scope.pageModel = {};
$scope.pageModel.varA = false;
$scope.pageModel.varB = ""; 
$scope.pageModel.varC = ""; 

并这样做:

$scope.pageModel = {
     varA = false,
     varB = "",
     varC = ""
};

如果执行第二个版本,我的应用程序将中断,但是如果我执行第一个版本,则不会中断。 当然,只有两种方法可以为模型声明相同的值? -有人能指出我正确的方向吗?

$scope.pageModel = {
     varA: false,
     varB: "",
     varC: ""
};

(这是基本的Javascript语法,完全与Angular无关)

为了使第二个示例工作,您需要将其定义为不使用=的对象

app.controller('testCtr',
function testCtr($scope){
    $scope.pageModel = {
        varA : false,
        varB : "",
        varC : ""
        };
});

现在可以使用了。 但是,这是基础知识,我建议阅读更多有关javascript的oop的示例,此处为:

2件事:

1.使用对象文字语法时,冒号用于将值映射到键:

var person = {
    name: "Tarzan"
};

2.使用对象文字语法时,无法在初始化期间引用对象。 创建对象后,需要引用该对象:

这是无效的:

var items = {
    item1: 10,
    item2: items.item1 + 10 // invalid
};

这是有效的:

var items = {};
items.item1 = 10;
items.item2 = items.item1 + 10; // valid

JavaScript对象表示法是

{
   attribute_1: value_1,
   attribute_2: value_2,
   .
   .
   .
   attribute_n: value_n
}

因此,您需要按以下方式声明pageModel:

$scope.pageModel = {
  varA: false,
  varB: "",
  varC: ""
};

另外,通常认为使用对象表示法而不是声明空对象然后分配其属性来声明对象是一种好的样式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM