var a=function(){
var self=this;
this.b=function(){
alert(this==self)//弹出true
this.c()//出错 为什么?????
}
this.b();
this.c=function(){
alert('cccc')
}
}
new a()
var self=this;
this.b=function(){
alert(this==self)//弹出true
this.c()//出错 为什么?????
}
this.b();
this.c=function(){
alert('cccc')
}
}
new a()
解决方案 »
- 关于javascript监听函数的问题
- 高手请进 帮个忙 如何实现动态创建BOX盒子模型 急在在线等。。。。
- 你能把这个乱码还原为“鹿鼎记”吗?
- 新手CSS导航问题,急!!!!!
- 怎么用js在,jsp页面中获取一个已经知道名称(字符串)的js函数对象。或者函数内容。
- CreatePopup的问题.
- 字号问题?
- 看看这段代码,如果让它可以支持IE5?高分相赠!
- 在页面中输入两个日期,如何用javascript判断这两个日期的大小
- 新手救助 这个JS拉倒最右边后始终回回弹到开始无法解决的bug
- 急!!!明天的作业!!!enter key与submit提交问题
- 控制 Windows Media Player 插件?
var a=function(){
var self=this;
this.b=function(){
alert(this==self)//弹出true
this.c()//出错 为什么????? 因为this.c == undefined
}
this.b(); <---- 这里在this.c=func...之前执行的,此时this.c == undefined
this.c=function(){
alert('cccc')
}
}
new a()
把this.b() 放到 this.c=func... 的后面就可以了
var a=function(){
var self=this;
this.b=function(){
alert(this==self)//弹出true
this.loadingEditorCheck = function(){
if (self.loadingComplete == true){
clearInterval(this.loadingOk);
self.c();
}
else {
this.loadingOk = setInterval(this.loadingEditorCheck, 1000);
}
}
}
this.b();
this.c=function(){
alert('cccc')
}
setTimeout("alert(this.loadingComplete=true)",3000)
}
new a()
var a=function(){
var self=this;
this.b=function(){
alert(this==self)//弹出true
this.loadingEditorCheck = function(){ //这个this是self
if (self.loadingComplete == true){
clearInterval(this.loadingOk);
self.c();
}
else {
this.loadingOk = setInterval(this.loadingEditorCheck, 1000); //setInterval里的this应该是window的
}
}
}
this.b();
this.c=function(){
alert('cccc')
}
setTimeout("alert(this.loadingComplete=true)",3000)
}
new a()
setTimeout("alert(this.loadingComplete=true)",3000) //<---这里的this是window对象//把 this 改成 a 就可以了
<script>
var a=function(){
var self=this;
(function(){
//alert(this==self)//弹出true
var loadingOk = setInterval(function(){
if (self.loadingComplete == true){
clearInterval(loadingOk);
loadingOk = null;
self.c();
}
}, 1000);
})()
this.c=function(){
alert('cccc')
}
setTimeout(function(){self.loadingComplete=true},3000)
}
new a()</script>