Javascript“头”对象范围

时间:2013-03-02 10:54:14

标签: javascript

我从“JavaScript Enlightement”一书中获取了以下代码。代码说前两个语句返回true但是当我在JSFiddle中运行代码时,第一行返回“false”(使用var关键字定义的变量)。这是代码:

<!DOCTYPE html><html lang="en"><body><script>
var myStringVar = 'myString';
var myFunctionVar = function() {};
myString = 'myString';
myFunction = function() {};
console.log('myStringVar' in window); // returns true
console.log('myFunctionVar' in window); // return true
console.log('myString' in window); // returns true
console.log('myFunction' in window); // return true
</script></body></html>

有人可以解释这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

在jsFiddle中,您的代码是嵌入式的,不会直接在window中运行,而是在加载页面时调用的回调中运行。

如果您想测试这些情况,您必须在标准页面中运行代码,或者从左侧面板的第二个菜单中选择一个"no wrap"选项。