Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript/Jquery中,哪个函数或对象的性能更好?_Jquery_Performance_Function_Object - Fatal编程技术网

在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);