Javascript 从窗口对象上的字符串名调用函数
为什么在窗口对象中找不到测试功能声明?谢谢Javascript 从窗口对象上的字符串名调用函数,javascript,window-object,Javascript,Window Object,为什么在窗口对象中找不到测试功能声明?谢谢 !function(){ function test(){ console.log("testing"); } var check = window["test"] console.log(check); //undefined }(); 由于function test()是顶级函数表达式作用域的局部,因此它不绑定到全局作用域window。您可以将其称为局部变量: !function() { funct
!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)
}()
!function() {
window.test = function test() {
console.log('testing')
}
var check = window['test']
console.log(check)
}()
或者将其直接绑定到全局变量的窗口
:
!function() {
function test() {
console.log('testing')
}
console.log(test)
}()
!function() {
window.test = function test() {
console.log('testing')
}
var check = window['test']
console.log(check)
}()
无法作为变量访问本地范围-请参阅以了解更多详细信息。因为
test
不在窗口对象中?你们已经创建了一个闭包,这就是重点。。。