如果不是 window 谁保留对变量的引用?
If not window who does keep reference to the variable?
以下代码我 运行 以三种不同的方式使用,但只有一种可以正常运行。
我不明白为什么。你能告诉我,如果不是 window 谁保留对变量的引用?
脚本:
'use strict';
let s = function(){};
尝试 1********************************* *
s();
控制台:确定
尝试 2********************************* *
window.s();
控制台:错误
TypeError: window.s 不是函数
尝试 3********************************* *
this.s();
控制台:错误
TypeError: this.s 不是函数
let
不会创建 window
的 属性。
Just like const the let does not create properties of the window object when declared globally (in the top-most scope) MDN.
let 只能在它声明的范围内可用(块的范围)
使用 var ,它全局定义了一个变量....
尝试
'use strict';
var s = function(){};
'use strict';
var s = function(){};
// TRY 1**********************************
s();
// TRY 2**********************************
window.s();
// TRY 3**********************************
this.s();
以下代码我 运行 以三种不同的方式使用,但只有一种可以正常运行。 我不明白为什么。你能告诉我,如果不是 window 谁保留对变量的引用?
脚本:
'use strict';
let s = function(){};
尝试 1********************************* *
s();
控制台:确定
尝试 2********************************* *
window.s();
控制台:错误
TypeError: window.s 不是函数
尝试 3********************************* *
this.s();
控制台:错误
TypeError: this.s 不是函数
let
不会创建 window
的 属性。
Just like const the let does not create properties of the window object when declared globally (in the top-most scope) MDN.
let 只能在它声明的范围内可用(块的范围) 使用 var ,它全局定义了一个变量....
尝试
'use strict';
var s = function(){};
'use strict';
var s = function(){};
// TRY 1**********************************
s();
// TRY 2**********************************
window.s();
// TRY 3**********************************
this.s();