在
JavaScript中为String类添加函数的后果是什么?这是个坏主意吗?例如.,
// String functions String.prototype.startsWith = function(string) { return (this.indexOf(string) === 0); } String.prototype.empty = function() { //console.log($.trim(this.valueOf())); if($.trim(this.valueOf()) == '') { return true; } else { return false; } }
解决方法
首先,原型比对象上的功能慢.创建功能的成本与查找一样.在原型上查找比在普通对象上更贵
看看这个JSPerf:
http://jsperf.com/prototype-methods-vs-object-methods
这是设置:
<script> Benchmark.prototype.setup = function() { function Bob() { } var b = new Bob(); Bob.prototype.testproto = function() {}; b.testobj = function() {}; }; </script>