簡體   English   中英

局部變量對JavaScript中對象屬性開銷的引用

[英]Local variable reference to object property overhead in JavaScript

使用局部變量而不是屬性本身來引用對象屬性是一種不好的做法嗎?

function Apple(){
  this.type = 'green appale';
}

Apple.prototype.slice = function(){
  //Does this create a noticeable overhead?
  var type = this.type;

  //slicing action

}

答案是是和不是。 從性能的角度來看,不必擔心。 與其他性能問題相比,這簡直是小菜一碟。 除了經驗法則之外,還要編寫代碼以提高可讀性,並且僅在需要根據事實進行概要分析時才進行優化。 不要預先優化。

注意事項...如果您將值保存為不可變值(字符串,整數,布爾值),那么您100%安全就可以這樣做。 如果它是一個對象或數組,那么您需要知道它是一個引用,並且更改也會影響原始變量。 最后,如果它是一個函數,那么您必須意識到您將在上面的代碼示例中松開它的上下文

function foo() {}

var bar = foo; // Context is irrelevant.

function foo() {
  this.baz = 'foobar';
}

var bar = foo; // You must provide a context or `this` becomes `window`.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM