jQuery中的语句,不带分号

时间:2015-10-20 05:11:12

标签: javascript jquery

我的声明如下,

url : "expand.do?parentID=" + node.id,

这个语句是我正在使用的jQuery树插件的一部分。现在,它不允许我在这个语句的末尾添加半冒号而且我需要把它放在If条件中根据某个值调用action 。如果我使用这样的语句,那么它可以正常工作。

4 个答案:

答案 0 :(得分:3)

这不是一个声明,它是属性初始值设定项,可能后跟其他属性初始值设定项。听起来你在传递给函数的参数中使用它们,例如:

someFunctionCall({
    prop1: "value 1",
    prop2: "value 2"
});

属性初始值设定项使用逗号分隔后续属性初始值设定项,而不是分号,这就是为什么添加分号不会起作用。

属性初始值设定项的右侧是表达式。如果您需要在该表达式中执行条件逻辑,则可以使用条件运算符(? :),例如:

someFunctionCall({
    prop1: someCondition ? "value 1" : "value 2",
    prop2: "..."
});

如果你需要做一些比在表达式中更容易做的事情,或者如果你需要在后续逻辑中访问这些属性,你可以拆分:

var params = {
    prop2: "..."
};
if (someCondition) {
    params.prop1 = "value 1";
} else {
    params.prop1 = "value 2";
}
// and/or
if (params.prop2 === "foo") {
    // ....
}
someFunctionCall(params);

答案 1 :(得分:2)

在这种情况下" url"是对象内部的关键。根据您的逗号,可以看到此对象中有多个键。

var foo = { url : "expand.do?parentID=" + node.id, bar: "blah"}

如果你想在IF语句中使用url的值,那么

if(foo.url){ 
   //do stuff
}

答案 2 :(得分:1)

试试这个;

{url : getURL(node),

function getURL(node){
    if (node.something == 'something'){
     var node_id = node.id
    }else
    {
     var node_id = (node.id + 22)
    }
    return "expand.do?parentID=" + node_id
}

答案 3 :(得分:0)

这很可能是JSON的一部分。 JSON语法如下所示:

{url : "expand.do?parentID=" + node.id}

通常,还有更多元素:

{
    hello: 'world',
    'I can even have spaces and Funny characters: 1 * 1 = 2 and PI: π': '3.14159265359'
}

但是,JSON实际上只是一个对象。

这意味着无论您拥有什么JSON,它实际上只是一个对象。