函数参数vs这个表现

时间:2016-01-18 15:58:43

标签: javascript performance

在Javascript中,提供更多性能:

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

    OR

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

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

2 个答案:

答案 0 :(得分: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




答案 1 :(得分:1)

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

this.Obj // do something

慢于:

Obj // do something

但你不会注意到差异:) 如果您想了解更多信息,请尝试获取此书: http://shop.oreilly.com/product/9780596802806.do