从 Window 对象上的字符串名称调用函数
calling a function from its string name on Window object
为什么在 window 对象中找不到测试函数声明?谢谢
!function(){
function test(){
console.log("testing");
}
var check = window["test"]
console.log(check); //undefined
}();
因为 function test()
在顶层函数表达式的范围内是局部的,所以它不绑定到 window
,全局范围。您可以将其作为局部变量引用:
!function() {
function test() {
console.log('testing')
}
console.log(test)
}()
或者直接给window
绑定一个全局变量:
!function() {
window.test = function test() {
console.log('testing')
}
var check = window['test']
console.log(check)
}()
您不能将本地作用域作为变量访问 - 有关详细信息,请参阅 this question。
为什么在 window 对象中找不到测试函数声明?谢谢
!function(){
function test(){
console.log("testing");
}
var check = window["test"]
console.log(check); //undefined
}();
因为 function test()
在顶层函数表达式的范围内是局部的,所以它不绑定到 window
,全局范围。您可以将其作为局部变量引用:
!function() {
function test() {
console.log('testing')
}
console.log(test)
}()
或者直接给window
绑定一个全局变量:
!function() {
window.test = function test() {
console.log('testing')
}
var check = window['test']
console.log(check)
}()
您不能将本地作用域作为变量访问 - 有关详细信息,请参阅 this question。