这两个JavaScript对象声明的区别

Difference between these two JavaScript Object declarations

本文关键字:对象 声明 区别 JavaScript 两个      更新时间:2023-09-26

谁能告诉我这样做有什么区别:

$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的知识下面是一些例子:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
  • http://www.objectplayground.com/

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: ""
};

而且,使用对象表示法来声明对象,而不是声明一个空对象,然后分配它的属性,这通常被认为是好的风格。