包含在括号

时间:2015-07-25 00:32:14

标签: javascript backbone.js

这里是新手。这些是什么意思:

var a = new (Backbone.Router.extend({
  //..bunch of methods
}));

首先定义类,然后用new创建实例是否是一个简写?为什么只用支架包裹就可行了?我可能错了,但我不相信它与(function(){})()相同如果它是相同的请帮助我理解,谢谢

编辑:

要补充说这是从骨干代码中看到的,但我不确定这是一个主干还是一个js语法问题。

1 个答案:

答案 0 :(得分:0)

你是对的。如果我们用C ++ / Java术语说话,那就像先创建一个类然后创建对象一样。

您上面提到的代码相当于:

var myRouter = Backbone.Router.extend({
  //..bunch of methods
});

var a = new myRouter();

根据我的理解,括号用于确保“new”关键字应用于路由器扩展返回的var(myRouter here),而不是路由器扩展函数本身。

希望它有所帮助。