在这个例子中,为什么 new 关键字不创建正在使用的 Router 类的唯一实例?您可以看到我的简单路由器有一个 $deferred 属性,该属性已被解析,但即使在创建新类并再次测试状态时,它仍然被解析,而不是在创建新类时被重置为“待处理”。
var Router = Backbone.Router.extend({
$deferred: new $.Deferred(),
initialize: function () {
}
});
var router1 = new Router({});
$("#results").append(router1.$deferred.state() + "<br>"); //pending
router1.$deferred.resolve();
$("#results").append(router1.$deferred.state() + "<br>"); // resolved
var router2 = new Router({});
$("#results").append(router2.$deferred.state() + "<br>"); //resolved -- should be pending
router2.$deferred.resolve();
$("#results").append(router2.$deferred.state() + "<br>"); //resolved