函数参数与此性能

function argument vs this performance

本文关键字:性能 参数 函数      更新时间:2023-09-26

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

  1. 将指向大型数据结构的指针传递为函数argument

  1. 使用this变量获取类结构中的指针

例:

选项 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 就会变得过于冗长。

您的两个示例在范围上有所不同。

您的第一个示例,内部函数具有父函数范围,并且无法在外部访问。

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

function parent() {
  
  function child() {
    // only accessible inside parent() function
  }
}
var parent = function() {
  this.child = function() {
    alert("Yeah");
  };
};
  
var p = new parent();
p.child(); // alerts Yeah

首先,性能取决于浏览器和用户PC ofc。这两个例子几乎相同。第一个可以更快,因为您可以直接引用对象。换句话说,您使用的"."越少,获得的性能就越好。所以:

this.Obj // do something

比以下速度慢:

Obj // do something

但你不会注意到:)的区别如果你想了解更多,试着得到这本书:http://shop.oreilly.com/product/9780596802806.do