JavaScript冒号运算符
JavaScript colon operator
我正在努力学习JavaScript。阅读本页后:什么是';:';(冒号)在JavaScript中做什么?
我试着更换
var store = new dojo.data.ItemFileReadStore({
url: "countries.json"
});
带有
var store = new dojo.data.ItemFileReadStore();
store.url = "countries.json";
它不起作用。请任何人指出错误,或解释科隆运算符的正确使用?。谢谢
这不是一个公平的比较,尽管你几乎做到了。
var store = new dojo.data.ItemFileReadStore({
url: "countries.json"
});
//Creates a new store object, passing an anonymous object in with URL
// property set to "countries.json"
没有冒号运算符的替代方案是:
var props={};
props.url="countries.json"
var store = new dojo.data.ItemFileReadStore(props);
//Does same as above but doesn't use :
这并不是:
在JavaScript中的唯一用途,它也可以用于三元运算符(alert(b==c?'equal':'not equal');
)和标签(例如case
语句)
第一个将url
参数传递给所谓的构造函数或对象,后者可能会对其进行隐藏操作,例如将其分配给其他变量或属性,例如"url2"。
第二个指定该对象的url
属性,您不知道它是否会被使用。
在第一段代码中,您将创建一个新对象,并将其作为参数传递给函数。
在第二部分中,您正在运行函数,然后设置存储对象的属性。它们是完全不同的,因为您并没有用参数调用函数,所以它可能无法正常运行。并且您正在将函数的返回设置为对象。未设置属性。
在这种情况下,第一个示例中的对象文字用于将一组选项传递给构造函数。构造ItemFileReadStore
然后尝试设置这些选项可能是不等效的,因为它可能需要它们来开始构建对象。
你需要这样做才能用=
:替换:
var options = {};
options.url = 'countries.json';
var store = new dojo.data.ItemFileReadStore(options);
如果第二种方法不起作用,您可能不会返回带有new dojo.data.ItemFileReadStore();
的Object,这会阻止您使用点语法对其进行扩展。如果你有一个对象,像这样添加到它会很好。
编辑:读错了,在一个例子中你传递了一个参数,在另一个例子中将返回值赋值,所以有两件不同的事情,我将以上内容作为参考。
dojo.data.ItemFileReadStore
对象可能要求在创建对象时存在url
属性。如果不是这样,那么在初始化对象之后,对象不允许手动设置该属性。
当您传递对象结构({}
)时,JSON中使用冒号来指定键和值之间的差异。
- 这是什么 ==- javascript 运算符
- Javascript逻辑运算符和字符串/数字
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- JavaScript 中三元条件和逻辑和运算符的运算符优先级
- JavaScript-===vs===运算符性能
- 在 Jquery/Javascript 中使用多个 OR (||) 运算符时如何设置变量
- 在 JavaScript 对象中设置要使用的运算符的属性
- 哪个JavaScript相等运算符(==或===)更快
- 用javascript中的三元运算符连接字符串
- 应该在什么时候使用Javascript条件运算符
- 我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中
- 什么时候可以对条件参数使用管道运算符?-JavaScript
- 如何使用逻辑运算符 JavaScript 或 jQuery
- 使用余数运算符Javascript对奇数和偶数进行排序
- 右移运算符 - Javascript
- 使用空数组时比较运算符 JavaScript 的奇怪行为
- 在条件中使用逻辑运算符和比较运算符(javascript)
- 动态运算符javascript
- 逻辑运算符&&javascript中的两个字符串