可能是维基问题,但仍然如此。哪种方法更符合Javascript精神:

var Report = function(data) {
    var that = this;
    that.send = function() { ... };
};

var r = new Report(data); // create and validate the data
r.send(); // encode and send the data


要么

var sendReport = function(data) {
    ...
    // create, validate, encode and send the data
    ...
};


第一种方法似乎更多OO,第二种功能更多?首先,似乎Report的功能更具可测试性(尽管例如,在此阶段我们只有send())。另外,当需要检查状态时,我喜欢在调试器中查看类型为Report的对象。

第二种方法可能更“简单”,但似乎缺乏可测试性。

我个人是第一种方法,但是问题是我是否尝试在“错误”域中应用OO“原理”(请帮助我更好地表达我的问题)。

最佳答案

您的问题似乎与new运算符无关;更多有关是否应该使用OO或函数式编程。

在这方面,OO完全在JavaScript的范围之内。您可以从API(e.g. e.g.)中看到JavaScript是一种非常面向对象的语言。

HTML5更进一步,通过向Object对象添加new methods来更好地控制对象。

谈到new的使用以及是否要避免使用它,我将带您指向this excellent answer(并告诉您使用new)。

关于javascript - 在javascript中创建对象(使用新对象)有什么优势?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11538085/

10-11 23:02
查看更多