博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通俗易懂介绍js作用域链和闭包,不懂的进!
阅读量:5834 次
发布时间:2019-06-18

本文共 1408 字,大约阅读时间需要 4 分钟。

es5作用域

javascript作用域分为全局作用域和局部作用域。在全局作用域内定义的就是全局变量,即window对象上的局部变量;局部作用域是函数作用域,注意是函数作用域而不是大括号作用域!
function test() {  var num = 1;  if (true) {    num = 2;    alert(num); // 2  }  alert(num); // 2 }
var scope="global";  function t(){      console.log(scope);  // undefined,变量提升    var scope="local"      console.log(scope);  // local}  t();
function Test() {  var a = 1;  this.b = 1;  this.show = function() {    alert('a=' + a);    alert('b=' + this.b);  }  this.setValue = function() {    a = 2;    this.b++;  }}var obj1 = new Test();obj1.show(); // a=1,b=1;var obj2 = new Test();obj2.setValue();obj2.show(); // a=2,b=2;obj1.show(); // a=1,b=1;上面的实例中,a是构造函数内部的一个变量,我们在实例化obj1和obj2之后,发现在实例化对象时,obj1和obj2各有一个作用域,其中的a并不是一份,而是不同的值。相互之间的操作并不影响。这里的a相当于私有变量,对于每一个对象来讲,也都是不同的。
(function() {  var privateStatic = "privatestatic";  Func = function() {    this.setPrivateStatic = function(value) {      privateStatic = value;    }    this.getPrivateStatic = function() {      return privateStatic;    }  }})();var func1 = new Func();var func2 = new Func();console.log(func1.getPrivateStatic()); // privatestaticconsole.log(func2.getPrivateStatic()); // privatestaticconsole.log(func1.setPrivateStatic('changed'));console.log(func2.getPrivateStatic()); //changed
(function b() {  var c = 1;  a(); // c is not defined})()function d() {  var c = 2;  console.log(c);};(function b() {  var c = 1;  d(); // 2})()

clipboard.png

js作用域链的查找规则

转载地址:http://ekycx.baihongyu.com/

你可能感兴趣的文章
倒计时:计算时间差
查看>>
Linux/windows P2V VMWare ESXi
查看>>
Windows XP倒计时到底意味着什么?
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>
Linux中iptables详解
查看>>
java中回调函数以及关于包装类的Demo
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>
Nginx 使用 openssl 的自签名证书
查看>>
创业维艰、守成不易
查看>>
PHP环境安装套件:快速安装LAMP环境
查看>>
CSS3
查看>>
ul下的li浮动,如何是ul有li的高度
查看>>
C++ primer plus
查看>>
python mysqlDB
查看>>
UVALive 3942 Remember the Word Tire+DP
查看>>
从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录...
查看>>
被需求搞的一塌糊涂,怎么办?
查看>>
c_数据结构_队的实现
查看>>
jquery 选择器总结
查看>>