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 函数参数与此性能_Javascript_Performance - Fatal编程技术网

Javascript 函数参数与此性能

Javascript 函数参数与此性能,javascript,performance,Javascript,Performance,在Javascript中,它提供了更高的性能: 将指向大型数据结构的指针作为参数传递给函数 或 使用此变量获取类结构中的指针 例如: 备选案文1: function() { function(Ob) { // do something with Ob }; } 备选案文2: function() { // Class structure this.Ob = { foo: "bar" }; // bar is a big data structure

在Javascript中,它提供了更高的性能:

  • 将指向大型数据结构的指针作为
    参数传递给函数
  • 使用
    变量获取类结构中的指针
  • 例如:

    备选案文1:

    function() {
        function(Ob) {
            // do something with Ob
        };
    }
    
    备选案文2:

    function() { // Class structure
        this.Ob = { foo: "bar" }; // bar is a big data structure 
        this.Fn = function() {
            var x = this.Ob
            // Use x 
        };
    }
    

    我发现选项1更具可读性,但一旦函数需要大量变量,选项1就会变得过于冗长

    你的两个例子的范围不同

    在第一个示例中,内部函数具有父函数作用域,在外部无法访问

    第二个示例具有父对象范围,但您可以使用对象实例访问外部:

    函数父函数(){
    函数子(){
    //只能在parent()函数中访问
    }
    }
    var parent=函数(){
    this.child=函数(){
    警惕(“耶”);
    };
    };
    var p=新的父对象();
    
    p、 child();//首先,性能取决于浏览器和用户PC ofc。 这两个例子几乎相同。 第一个可以更快,因为您对对象有直接引用。 换句话说,使用“.”越少,性能越好。 因此:

    慢于:

    Obj // do something
    
    但你不会注意到区别:) 如果您想了解更多信息,请尝试获取本书:

    运行一些测试并找出答案。不同浏览器甚至不同版本的浏览器的性能可能不同。这两种方法都不会有太大的区别,在实践中都很重要。如果参数是一个对象,默认情况下它是通过引用传递的。因此,这取决于你在处理什么。最后,浏览器以不同的方式实现JS引擎。没有正式的JS运行时,但所有3个流行的JS执行引擎都非常快,这些类型的优化毫无意义。你只是在浪费时间。使用对您和您的团队来说最具可读性的内容(如果您在其中)。“在Javascript中,它提供了更高的性能”这是如何回答这个问题的?从浏览器的内存和cpu使用方面来说,使用普通对象是更好的性能。但是,性能是一个主观概念,取决于大量变量(cpu、ram、hd、浏览器、internet速度连接、操作系统等)。换句话说,代码中的第二个示例更好。嘿!谢谢你的回答!当你思考C++的底层性能时,它是有意义的。
    Obj // do something