可能是维基问题,但仍然如此。哪种方法更符合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/