这是我的对象文字:
var obj = {key1: value1, key2: value2};
Run Code Online (Sandbox Code Playgroud)
如何添加{key3: value3}到对象?
有没有办法在JavaScript中使用以下内容?
var foo = {
a: 5,
b: 6,
c: this.a + this.b // Doesn't work
};
Run Code Online (Sandbox Code Playgroud)
在当前形式中,此代码显然会抛出引用错误,因为this没有引用foo.但是,是有什么办法对早些时候宣布的其他属性在对象文本的属性值依赖?
为什么以下工作?
<something>.stop().animate(
{ 'top' : 10 }, 10
);
Run Code Online (Sandbox Code Playgroud)
虽然这不起作用:
var thetop = 'top';
<something>.stop().animate(
{ thetop : 10 }, 10
);
Run Code Online (Sandbox Code Playgroud)
为了使它更清晰:目前我无法将CSS属性作为变量传递给animate函数.
我需要创建一个对象文字数组,如下所示:
var myColumnDefs = [
{key:"label", sortable:true, resizeable:true},
{key:"notes", sortable:true,resizeable:true},......
Run Code Online (Sandbox Code Playgroud)
在这样的循环中:
for (var i = 0; i < oFullResponse.results.length; i++) {
console.log(oFullResponse.results[i].label);
}
Run Code Online (Sandbox Code Playgroud)
值的值key应该results[i].label在数组的每个元素中.
我有一个Javascript对象如下:
var data = {items: [
{id: "1", name: "Snatch", type: "crime"},
{id: "2", name: "Witches of Eastwick", type: "comedy"},
{id: "3", name: "X-Men", type: "action"},
{id: "4", name: "Ordinary People", type: "drama"},
{id: "5", name: "Billy Elliot", type: "drama"},
{id: "6", name: "Toy Story", type: "children"}
]};
Run Code Online (Sandbox Code Playgroud)
如果我想在此列表中添加/删除项目,我将如何使用jQuery进行操作?客户端希望此列表可动态修改.
好吧,我正在努力开发Nodes中的一个项目,我遇到了一个关于对象文字中的键的小问题,我有以下设置:
var required = {
directories : {
this.applicationPath : "Application " + this.application + " does not exists",
this.applicationPath + "/configs" : "Application config folder does not exists",
this.applicationPath + "/controllers" : "Application controllers folder does not exists",
this.applicationPath + "/public" : "Application public folder does not exists",
this.applicationPath + "/views" : "Application views folder does not exists"
},
files : {
this.applicationPath + "/init.js" : "Application init.js file does not exists",
this.applicationPath + "/controllers/index.js" : "Application index.js controller …Run Code Online (Sandbox Code Playgroud) 是否可以在对象文字属性中使用变量名来创建对象?
例
function createJSON (propertyName){
return { propertyName : "Value"};
}
var myObject = createJSON("myProperty");
console.log(myObject.propertyName); // Prints "value"
console.log(myObject.myProperty); // This property does not exist
Run Code Online (Sandbox Code Playgroud) 我有一个充满ips的json对象
var ips = {}
Run Code Online (Sandbox Code Playgroud)
然后我像这样添加ip对象到这个对象
ips[ipID] = {}
Run Code Online (Sandbox Code Playgroud)
然后我需要为每个ip添加动态/变量名称值对,所以我使用这样的代码
var name; var value; var temp = {};
tmp[name] = value
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何将这些名称值对/ tmp添加到我的ipID对象中,以便我的结果如下
ipID = { name : value, anotherName : anotherValue }
Run Code Online (Sandbox Code Playgroud) 为什么JavaScript不允许模板字符串作为对象属性键?例如,当我输入:
foo = {`bar`: 'baz'}
Run Code Online (Sandbox Code Playgroud)
在NodeJS REPL中,它会抛出一个SyntaxError带有长堆栈跟踪的"Unexpected模板字符串".但是,属性值很好,这并不是意料之外的.在浏览器中发生类似的错误,例如,Firebug会抛出SyntaxError"无效的属性ID".
"计算属性名称"中允许使用模板字符串.例如,这在所有支持语法的浏览器中编译得非常好:
var foo = {
[`bar` + 1]: `baz`
};
Run Code Online (Sandbox Code Playgroud)
并创建对象{"bar1": "baz"}.
为什么不允许模板字符串作为文字对象键?是出于性能原因吗?必须在运行时编译模板字符串(如果我错了,请纠正我),这意味着每次遇到此对象时,解释器都必须计算对象名称.考虑到"煮熟的"模板字符串之类的东西,这似乎可能会变慢,尽管我们从ES5开始就有吸气剂和固定器.Firefox没有提到这是一个错误,这就是我发现它意外的原因.将来某个时候会允许语法吗?
javascript object-literal node.js template-strings template-literals
这段代码也引用了什么?
queryString: function() {
//some code
}
Run Code Online (Sandbox Code Playgroud)
我在WebConsole(Firefox)中对它进行了测试,但它不会执行,因此我认为它不等同于function queryString() {}.
那究竟是什么?
javascript ×10
object-literal ×10
jquery ×2
properties ×2
arrays ×1
colon ×1
function ×1
node.js ×1
object ×1
variables ×1