我从“JavaScript Enlightement”一书中拿下了下面的代码。该代码表示前两个语句返回true,但是当我在JSFiddle中运行代码时,第一行返回“false”(用var关键字定义的变量)。这里是代码:Javascript“head”object scope
<!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>
有人可以解释这里发生了什么?
当问一个关于jsfiddle的问题时,提供一个链接到小提琴将是有礼貌的... – JJJ 2013-03-02 10:57:32
你可能会发现这个有趣的http://jsfiddle.net/V2uEb/1/如果你在本地尝试这个结果将是不同。 – Bakudan 2013-03-02 11:10:06
@Juhana我的问题不直接关于JSFiddle,但我明白了你的观点。 – 2013-03-02 11:22:23