我一直在JavaScript中探索范围。消息来源指出,作用域是以函数分隔的,而不是像大多数语言那样用块分隔。IF是JavaScript中的一个函数吗?
我把一些代码显示在一些代码我写的,因为我的一些功能中之功能尚不清楚(我),我想看到的范围是如何工作的这些。
令人大跌眼镜的是,在$ .getJSON内$。每个功能的函数,如果(){}子句,显然,作为一个函数处理。我会认为它是一个块。
function displayInfo(nKey) {
if(!nKey) var nKey = 0;
var objFilm = {};
var imgRef;
//iterate through all object properties; display their attributes
// Object.keys() returns an array of all property names
// for most entries, the object is ...film; check first for array of multiple films
jqxhr = $.getJSON('dbMovies.json', function(data) {
var xx = "xx";
$.each(data.disc, function(i, xdata) {
if(xdata.key == nKey) {
objFilm = xdata.film;
var yy = "yy";
imgRef = xdata.img;
return false;
}
console.log("in jqxhr, xx: " + typeof xx); //this shows
console.log("in jqxhr, yy: " + typeof yy); //this does NOT
}); // $.each
})
.done(function() {...}
if if(){}是一个函数,什么是块?
没有。这不是一个功能。如果它是一个功能。它可能有一个返回值。 'var foo = if(...){...}'是一个平坦的语法错误。这是一个关键字。并注意你的.each里面的'if()'实际上在一个函数内:'function(i,xdata)...' –
'if'不是一个函数。是什么让你认为这是一个功能? –
你可以在这里阅读有关的语言规范语句:http://www.ecma-international.org/ecma-262/5.1/#sec-12 :) – Goot