第二个更有效率.这个
chop: function() { map( function(element) { ... chop off last character ... } )}
将在每次调用时创建一个新的函数对象,chop()
具有相应的运行时和内存开销.由于不会有任何对新对象的延迟引用,因此可以立即收集行李,但创建超过必要的对象仍然是不好的做法.
我建议采用以下模式:
MyObject.prototype = (function() { function map(fn) { ... } function chopElement(element) { ... } function chop() { this.map(chopElement); } return { map : map, chop : chop }; })();