【发布时间】:2016-05-18 20:55:29
【问题描述】:
我有代码:
function Contract() {
var contract = {};
contract.id = ...;
contract.date = ...;
contract.calculateTotal = function() {
...
}
return contract;
}
问题是——Contract() 的结果会发生什么?每次都用 ={} 重新创建合约吗?这个问题与AngularJS模型层的设计有关。 Contract() 应该用作创建新模型层对象的构造函数。 Contract() 将是单例的,真正的问题是 - 每次调用 Contract() 是否都会创建新对象,或者是否有一个合约对象位于单例 Contract() 中,并且每次调用 Contract 时都会返回相同的实例()?
【问题讨论】:
-
这似乎很容易测试
-
每次
{}文字被计算时,它都会创建一个新对象,并且对象总是通过引用来处理。 -
您说的是“Contract() 将是单身”,但随后询问
contract = {}每次Contract()会发生什么实例化。没有意义。 singleton 是一个只能被实例化一次的对象(设计模式)。您的代码中没有任何内容阻止我根据需要多次实例化Contract()。
标签: javascript angularjs object