首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome开发者工具奇怪的行为

Chrome开发者工具奇怪的行为
EN

Stack Overflow用户
提问于 2018-04-04 15:35:08
回答 1查看 103关注 0票数 0

我尝试在js中使用范围变量,并使用工具。我试图访问闭包变量,如下所示:

代码语言:javascript
复制
"use strict"

var Dog = function(){                                                                   
  this.color = "brown";                                                             
  this.weight = "10";                                                               
} 

Dog.prototype.generateCode = function(){                                            
  var codeSeparator = "#";               
  var _this = this;

  return label();                                                                   
  function label(){
    debugger;                             
    return _this.color + _this.weight;                              
  }     
}       

var d = new Dog();                            
d.generateCode();

当我试图访问变量codeSeparator时,使用chrome工具时会出现错误,但是火狐没有问题。

另一方面,如果在函数中使用变量,chrome似乎很好:

代码语言:javascript
复制
  //...                                                        
  function label(){
    debugger;                             
    return _this.color + codeSeparator + _this.weight;                              
  }        

我不确定这是一个带有chrome开发工具的bug,还是我没有得到的JS概念。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 15:40:43

Chrome的V8有一个名为Dead Code Elimination的特性

如果您不在任何地方使用codeSeparator,V8可能会删除此代码。

参考资料:

  • 死代码消除(DCE) - 删除不影响程序结果的代码。

https://blog.ghaiklor.com/optimizations-tricks-in-v8-d284b6c8b183 https://chromium.googlesource.com/v8/v8/+/roll/src/compiler/dead-code-elimination.cc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49655085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档