function嵌套问题,怎么访问上层数据 本帖最后由 Kreocn 于 2011-04-29 16:06:39 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 例子: $(function () { var teop = new Object();//声明类对象 var privateT = "55555555555"; //private 私有成员 teop.PublicT = "7777777777"; //PublicT公有成员 teop.PublicFunction = function () {//PublicT公有方法 privatefunction(); } teop.PublicFunction2 = function () {//PublicT公有方法 privatefunction2(); } function privatefunction() {//private 私有方法 alert(privateT);//访问私有成员 } function privatefunction2() {//private 私有方法 alert(teop.PublicT);//访问公有成员 } window["teop"] = teop;//把类赋值给window对象,作为window对象的属性 }) 1 首先声明类对象 var teop = new Object(); 并把整个类放在 $(function () {})中,保证在文档正常加载后类已经存在。2 在把类对象赋值给window对象,作为window对象的属性window["teop"] = teop; 这样就可以在外部通过window对象的访问属性此类了3 在类内部声明私有成员直接使用var关键字,例如:var privateT = "55555555555"; //private 私有成员 声明共有成员则作为类的属性,不能使用var关键字,例如:teop.PublicT = "7777777777"; //PublicT公有成员 声明私有方法和声明私有成员基本类似,例如: function privatefunction() {//private 私有方法 alert(privateT);//访问私有成员 } 声明共有方法和声明公有成员基本类似,例如: teop.PublicFunction = function () {//PublicT公有方法 privatefunction(); }4 主要注意的是,对公有方法,共有属性的问,必须是完整的,不管是在类内部还是类外部。例如: teop.PublicFunction(),必须是 teop.PublicFunction(),而不能是PublicFunction();teop.PublicT,必须是 teop.PublicT,而不能是PublicT;5测试脚本 function Test() { teop.PublicFunction();//测试 访问公有方法,可以正常使用 teop.PublicFunction2();//访问公有方法,可以正常使用 privatefunction();//访问私有方法,不能访问 teop.privatefunction();//访问私有方法,不能访问 alert(teop.PublicT);//访问共有属性,可以正常使用 alert(teop.privateT);//访问私有属性,不能访问 alert(privateT);//访问私有属性,不能访问 } function fa(x1) { this.xx = x1; var self = this; this.fa_b = function() { //..... } this.fa_a = function() { //..... this.fa_a_b = function() { // 问题在这,我怎么访问到 xx和fa_b??? // 外面的数倒是可以通过参数 self.xx; self.fa_b() }; };} 来个更明显一点的function fa(x1) { this.xx = x1; this.fa_b = function() { //..... } this.fa_a = function() { alert(this.xx); fa_a_b(); }; var fa_a_b = function() { //getObj(this.parent); alert(this.xx); //这句有问题 };}function tfa() { var f = new fa('xxx'); f.fa_a();}怎么样访问xx??那句是有问题的 为什么触发以后每次会添加两个元素呢?求指教 js动态创建元素并赋值。 jquery在ie和firefox下的问题 “网客兼职”网站是骗人吗?高手分析下这个代码 如何在javascript中获取一个字符串所占的象素? JQUERY COOKIE 问题 javascript如何判断AJAX返回到DIV中的值 js怎么让字符串在 “页面中” 换行,这不是\r\n能解决的。求解 50分,跪求正则问题,还请各位进来看看,在线等,急 关闭窗口的疑问 javascript 能否隐藏select iframe 自适应
var teop = new Object();//声明类对象
var privateT = "55555555555"; //private 私有成员
teop.PublicT = "7777777777"; //PublicT公有成员
teop.PublicFunction = function () {//PublicT公有方法
privatefunction();
}
teop.PublicFunction2 = function () {//PublicT公有方法
privatefunction2();
}
function privatefunction() {//private 私有方法
alert(privateT);//访问私有成员
}
function privatefunction2() {//private 私有方法
alert(teop.PublicT);//访问公有成员
}
window["teop"] = teop;//把类赋值给window对象,作为window对象的属性 })
1 首先声明类对象 var teop = new Object(); 并把整个类放在 $(function () {})中,保证在文档正常加载后类已经存在。2 在把类对象赋值给window对象,作为window对象的属性window["teop"] = teop; 这样就可以在外部通过window对象的访问属性此类了3 在类内部声明私有成员直接使用var关键字,例如:var privateT = "55555555555"; //private 私有成员 声明共有成员则作为类的属性,不能使用var关键字,例如:teop.PublicT = "7777777777"; //PublicT公有成员 声明私有方法和声明私有成员基本类似,例如: function privatefunction() {//private 私有方法
alert(privateT);//访问私有成员
} 声明共有方法和声明公有成员基本类似,例如: teop.PublicFunction = function () {//PublicT公有方法
privatefunction();
}4 主要注意的是,对公有方法,共有属性的问,必须是完整的,不管是在类内部还是类外部。例如: teop.PublicFunction(),必须是 teop.PublicFunction(),而不能是PublicFunction();teop.PublicT,必须是 teop.PublicT,而不能是PublicT;5测试脚本 function Test() {
teop.PublicFunction();//测试 访问公有方法,可以正常使用
teop.PublicFunction2();//访问公有方法,可以正常使用
privatefunction();//访问私有方法,不能访问
teop.privatefunction();//访问私有方法,不能访问 alert(teop.PublicT);//访问共有属性,可以正常使用 alert(teop.privateT);//访问私有属性,不能访问
alert(privateT);//访问私有属性,不能访问
}
this.xx = x1;
var self = this;
this.fa_b = function() {
//.....
}
this.fa_a = function() {
//.....
this.fa_a_b = function() {
// 问题在这,我怎么访问到 xx和fa_b???
// 外面的数倒是可以通过参数
self.xx;
self.fa_b()
};
};
}
this.xx = x1;
this.fa_b = function() {
//.....
}
this.fa_a = function() {
alert(this.xx);
fa_a_b();
};
var fa_a_b = function() {
//getObj(this.parent);
alert(this.xx); //这句有问题
};
}function tfa() {
var f = new fa('xxx');
f.fa_a();
}
怎么样访问xx??那句是有问题的