这两个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的知识下面是一些例子:
- 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: ""
};
而且,使用对象表示法来声明对象,而不是声明一个空对象,然后分配它的属性,这通常被认为是好的风格。
相关文章:
- JavaScript对象声明后的逗号是什么意思
- ESLint 无多空格允许在对象声明中
- 在对象声明中重写 toString 原型
- 如何将对象及其子对象声明为常量
- javascript对象声明没有按我希望的方式工作
- 或JavaScript对象声明的符号
- 正在将Jquery对象声明为变量
- 如何使用对象声明启动特定方法
- 为什么这个对象声明在node.js中有效,以及如何声明静态变量
- Javascript中的对象声明
- 不能理解JQuery扩展对象声明背后的一些语法
- 从对象声明中访问变量
- 对象声明中的访问变量
- 这两个JavaScript对象声明的区别
- Javascript对象声明中的语法错误
- 两个Date.now()在一个对象声明中
- 在JS中,如何为一个对象声明一个值,并让所有的父键自动创建
- 带有对象声明和IN保留字的Javascript for()循环-只是想澄清一下
- 创建一个JavaScript原型是一种好做法吗?方法进行自定义对象声明,如果是,如何进行
- JavaScript对象声明有问题