'新'与'申请'创建对象时

时间:2016-07-16 01:59:57

标签: javascript knockout.js ecmascript-6

背景:我在Knockout工作并实施了custom component loader。具体来说,我正在为依赖注入目的实现loadComponentcreateViewModel方法。所以基本上,我通过某种约定确定了相应的构造函数,然后使用所需的依赖项在其上调用new

我的问题:当我有这个......

function model(arg1, arg2) {
    this.foo = arg1;
    this.bar = arg2;
}

之间究竟有什么区别:

var instance = new model(arg1, arg2);

var instance = {};
model.apply(instance, [arg1, arg2]);

两者似乎都有相同的结果。至于我的具体用例,我想做类似的事情:

var instance = {};
model.apply(new Proxy(instance, handler), [arg1, arg2]);

handler将翻译的内容如下:

this.foo = 'bar';

成:

this.foo = ko.observable('bar');

..抽象出Knockout的笨重的可观察语法。

  1. 这是一个糟糕的主意吗?
  2. 有更好/更简单的方法吗?
  3. 这样做有什么意义而不是new

0 个答案:

没有答案