在javascript中添加字符串原型的性能成本
我在看一些代码(),它添加到javascript中的在javascript中添加字符串原型的性能成本,javascript,Javascript,我在看一些代码(),它添加到javascript中的字符串对象的原型中 我想知道如何承担添加到字符串原型的开销,因为它适用于任何不需要这些添加的字符串处理(cpu、内存)。这是因为我可能不会发现仅仅为了这个小垫片而增加所有字符串操作的开销是有用的,我想现在也是对本机类型的javascript原型操作更加友好的时候了 由于这个话题在不同的语境中被无休止地讨论,任何指向现有良好或简单分析的指针都将是有益的,或者是一个简洁但正确的解释。使用谷歌关键词搜索登陆有点困难 谢谢 这是因为我可能不会发现仅仅为
字符串对象的原型中
我想知道如何承担添加到字符串原型的开销,因为它适用于任何不需要这些添加的字符串处理(cpu、内存)。这是因为我可能不会发现仅仅为了这个小垫片而增加所有字符串操作的开销是有用的,我想现在也是对本机类型的javascript原型操作更加友好的时候了
由于这个话题在不同的语境中被无休止地讨论,任何指向现有良好或简单分析的指针都将是有益的,或者是一个简洁但正确的解释。使用谷歌关键词搜索登陆有点困难
谢谢
这是因为我可能不会发现仅仅为了这个小垫片而增加所有字符串操作的开销是有用的
如果有性能成本,这绝对不是。当您创建一个字符串时,它不像是复制了所有的原型方法;根据需要(即,当您调用该方法时)从原型链中查找任何属性
人们出于不同的原因避免将方法添加到其他原型中——它将代码混合在一起,并可能产生冲突。(请参阅Prototype.js,这是一个完全围绕扩展内置项而运行的库。)相反,您可以使用一个函数——最近这些OOP废话经常让人低估它的价值 首先,你必须了解它是如何工作的。因为只有一个原型被所有字符串共享,所以它只对函数的一个实例使用内存。如果您的代码不是私有的,您可能应该避免向内置对象添加内容。当然,谢谢:)但是我想向(字符串)原型添加函数可能会降低对字符串调用函数的速度,或者在javascript解释器查找字符串原型函数时(如果有的话)会降低其他字符串处理的速度。如果我真的想,我可以通过一些繁重的实验来计算实际影响,或者深入研究开源浏览器源代码。你认为现代浏览器只是使用一种数据结构,对于原型函数,它有一个恒定的查找时间,而不管它包含或引用了多少函数?@matt:你根本不必担心这一部分——性能会受到显著影响的地方(嗯,通常是这样!这里的所有内容通常都是=)
)当您调用添加到原型中的特定函数时。其他任何东西都应该保持不变。