在Javascript/Jquery中,哪个函数或对象的性能更好?
简单回答:物体速度更快在Javascript/Jquery中,哪个函数或对象的性能更好?,jquery,performance,function,object,Jquery,Performance,Function,Object,简单回答:物体速度更快 你的函数返回一个对象——为什么它会比直接对象更快?而这可以被认为是过早优化的情况,考虑语义不同的情况,第一种方法可能是首选的(因为没有存储额外的状态)。 无论如何,第一个“objects”方法是“faster”(对于“faster”的某些值),因为调用相同对象属性的相同函数 第二个“函数”方法将“较慢”(对于“较慢”的某些值),因为每次执行myutils函数时(请记住,函数也是对象),它都会返回一个新对象,该对象具有新函数作为属性。因此,顾名思义就是必须做更多的工作。(另
你的函数返回一个对象——为什么它会比直接对象更快?
而这可以被认为是过早优化的情况,考虑语义不同的情况,第一种方法可能是首选的(因为没有存储额外的状态)。 无论如何,第一个“objects”方法是“faster”(对于“faster”的某些值),因为调用相同对象属性的相同函数 第二个“函数”方法将“较慢”(对于“较慢”的某些值),因为每次执行myutils
函数时(请记住,函数也是对象),它都会返回一个新对象,该对象具有新函数作为属性。因此,顾名思义就是必须做更多的工作。(另外,第二种方法不会按原样运行,我在脑海中将其翻译为“工作代码”。)
快乐编码
在zerkms的评论之后,我添加了一个jsperf测试用例:(它还包括适当的bug修复;两个“示例”实际上都被破坏了)。第二个示例将给出一个解析错误
\u addNumbers:function
的语法无效。@第二种方法无法正常工作,但语法有效;-)\u addNumbers
是一个标签,函数
用于语句上下文。但是,代码{addNumbers:_addNumbers,…
将引发引用错误异常,因为未定义{addNumbers
。@pst ahhh很好!P
//Object approach
$.myutils = {
addNumbers : function(a,b){
//assuming a and b are integers for simplicity
return a + b;
}
subNumbers : function (a,b){
//assuming a and b are integers for simplicity
return a - b;
}
};
//Usage
$.myutils.addNumbers(20,10);
$.myutils.subNumbers(20,10);
//function approach
$.myutils = function()
{
return {
addNumbers : _addNumbers,
subNumbers : _subNumbers
};
_addNumbers : function(a,b){
//assuming a and b are integers for simplicity
return a + b;
}
_subNumbers : function (a,b){
//assuming a and b are integers for simplicity
return a - b;
}
}
//Usage
$.myutils().addNumbers(20,10);
$.myutils().subNumbers(20,10);