这里是新手。这些是什么意思:
var a = new (Backbone.Router.extend({
//..bunch of methods
}));
首先定义类,然后用new创建实例是否是一个简写?为什么只用支架包裹就可行了?我可能错了,但我不相信它与(function(){})()
相同如果它是相同的请帮助我理解,谢谢
编辑:
要补充说这是从骨干代码中看到的,但我不确定这是一个主干还是一个js语法问题。
答案 0 :(得分:0)
你是对的。如果我们用C ++ / Java术语说话,那就像先创建一个类然后创建对象一样。
您上面提到的代码相当于:
var myRouter = Backbone.Router.extend({
//..bunch of methods
});
var a = new myRouter();
根据我的理解,括号用于确保“new”关键字应用于路由器扩展返回的var(myRouter here),而不是路由器扩展函数本身。
希望它有所帮助。