JSON表示法和对象赋值的区别是什么?
What is the difference between JSON notation and assigning to an object?
在Knockoutjs的Twitter客户端示例中,一些属性在JSON对象中,其他属性在JSON变量之外分配。有什么区别呢?为什么方法(findSavedList
)不能只是初始声明的一部分?
var viewModel = {
savedLists: ko.observableArray([ ... ]),
editingList: { ... },
userNameToAdd : ko.observable(""),
currentTweets : ko.observableArray([])
};
viewModel.findSavedList = function (name) {
...
};
仅从问题中的代码来看,我看不出有什么理由不可以这样写:
var viewModel = {
savedLists: ko.observableArray([ ... ]),
editingList: { ... },
userNameToAdd : ko.observable(""),
currentTweets : ko.observableArray([]),
findSavedList: function (name) {
...
}
};
看看实际的例子,我认为他们只是想单独编写函数—也许是为了可读性?
方法没有理由不能;这是文体。
您所引用的内容都不是JSON。JSON是用于数据交换的文本符号。你引用的是JavaScript代码。
要回答你的问题,没有理由不能在对象字面量中定义函数:
var viewModel = {
savedLists: ko.observableArray([ ... ]),
editingList: { ... },
userNameToAdd : ko.observable(""),
currentTweets : ko.observableArray([]),
findSavedList: function(name) {
...
}
};
作者可能为了清楚起见把它们分开了。
关于我上面的JSON注释:JSON是JavaScript文字表示法的一个子集。以上是直接的JavaScript文字表示法。JavaScript代码中不需要JSON;只有在传递以文本形式编码的数据时才需要JSON。如果意味着JSON,它将是无效的。在JSON中,属性名(键)必须在双引号中,并且不能在属性初始化器的右侧有表达式(因此,不能调用
ko.observeableArray
)。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- @@(“at at”)在ES6 JavaScript中是什么意思
- knex:根据结果创建数组的合适方法是什么
- emu -model、emu -restless和emu之间的主要区别(优缺点)是什么?
- function()在jQuery中是什么意思?这个和$(这个)有什么区别