这个 JavaScript 函数的范围是什么?
What is the scope of this JavaScript function
以下函数的作用域是什么,因为使用窗口作用域调用它是行不通的。
$(document).ready(function(){
function a() {
alert("function called from global scope");
}
// this alerts
a(); //This is global scope?
// this doesn't alert
window["a"](); //This is also global scope?
});
还让我知道如何找到函数、对象或变量的范围?
JavaScript 具有函数级范围。因此,让我们浏览一下代码。在代码中定义两个函数。第一个是作为回调传递给$(document).ready
的无名函数。我们称之为回调函数。 a
在此回调函数内部定义,因此在本地范围内。因此a
只能从回调函数内部引用。
定义a
后调用它并查看警报。然后,您尝试从全局对象获取对a
的引用(全局定义的所有内容都将在浏览器中window
)。由于a
不是全局定义的,因此无法从 window
中检索它。实际上,您检索null
,并在尝试使用()
调用它时在控制台上看到TypeError: window.a is not a function
。
相关文章:
- 我的localStorage结果显示了[null,null,“something”]],而不是“”;什么”;
- stub.callsArg(index) from Sinon.JS 是做什么的
- 有人可以向我解释一下代码的JavaScript / Ajax部分是做什么的
- Eloquent JS第5章中的这段代码是做什么的
- JavaScript's替换与document.create()结合的函数-这个代码是做什么的
- 谷歌应用程序脚本:;范围不是函数,它是对象;尝试在单元格中放置注释时出错
- Javascript .call() 用法.一个工作案例,一个不是.有什么区别
- 网络应用程序是用什么语言编写的
- jQuery 函数 $('#myelement').is('*') 是做什么的
- RxJS的新手,范围不是一个函数
- 迭代器范围不是本地的
- “window.functionname&&functionname()”是做什么的
- scroll.scrolldisabler是做什么的
- ECMAScript 中的内部属性定义是为了什么
- anObject.prototype.constructor 是做什么的
- 文档易受攻击是做什么的
- 这个伪jquery函数(r)脚本是做什么的
- dojo.empty() / domConstruct.empty() 到底是做什么的
- JavaScript 中的 handle_redirect() 是做什么的
- Function.prototype.toMethod() 是做什么的