我想知道关于JScript.NET私有变量。请把下列代码看看:JScript.NET私有变量
import System;
import System.Windows.Forms;
import System.Drawing;
var jsPDF = function(){
var state = 0;
var beginPage = function(){
state = 2;
out('beginPage');
}
var out = function(text){
if(state == 2){
var st = 3;
}
MessageBox.Show(text + ' ' + state);
}
var addHeader = function(){
out('header');
}
return {
endDocument: function(){
state = 1;
addHeader();
out('endDocument');
},
beginDocument: function(){
beginPage();
}
}
}
var j = new jsPDF();
j.beginDocument();
j.endDocument();
输出:
beginPage 2
header 2
endDocument 2
,如果我在任何浏览器中运行相同的脚本,输出:
beginPage 2
header 1
endDocument 1
为什么如此??
谢谢, 保罗。
不,他们相信他们支持闭包 - http://blogs.msdn.com/jscript/archive/2007/07/26/scope-chain-of-jscript-functions.aspx – 2010-01-23 23:03:21