js 作用域的问题 setInterval(function(){ this.doIt(...);},间隔时间); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script> var test=function(){ var _this=this _this.i=0, _this.getValue=function(){ return 100; }, _this.doIt=function(){ _this.i++; alert("kj___" +_this.i); }, _this.start=function(){ setInterval(this.doIt,2000); } }; var myText=new test(); myText.start(); </script> <script> var test=function(){ this.i=0}test.prototype={doIt:function(txt) { this.i++; alert("kj___" +this.i); }, start:function(){ var o=this setInterval(function(){o.doIt()},2000); } }; var myText=new test(); myText.start(); </script> <script> var test=function(){ this.i=0, this.getValue=function(){ return 100; }, this.doIt=function(_object,txt) { _object.i++; alert("kj___" +txt); }, this.start=function(){ _object = this; setInterval(function() { _object.doIt.call(this,_object,_object.i); },2000); } }; var myText=new test(); myText.start(); </script> <script> var test=function(){ this.i=0, this.getValue=function(){ return 100; }, this.doIt=function(_object,txt) { _object.i++; alert("kj___" +txt); }, this.start=function(){ _object = this; setInterval(function() { _object.doIt.call(this,_object,_object.i); },2000); } }; var myText=new test(); myText.start(); </script> 回复#3的帖子(能解释下吗?为什么楼主的不行)this指针放到方法中,需要“替代”一下子^_^<script> var test=function(){ var _this=this this.i=0, this.getValue=function(){ return 100; }, this.doIt=function(){ _this.i++; alert("kj___" +_this.i); }, this.start=function(){ setInterval(_this.doIt,2000); } }; var myText=new test(); myText.start(); </script> LZ的代码这样就可以了:<script> var test=function(){ var _this=this this.i=0, this.getValue=function(){ return 100; }, this.doIt=function(txt) { _this.i++; alert("kj___" +txt); }, this.start=function(){ setInterval(function(){_this.doIt( _this.i)},2000); } }; var myText=new test(); myText.start(); </script> 也可以这样:<script> var test=function(){ var _this=this this.i=0, this.getValue=function(){ return 100; }, this.doIt=function(txt) { _this.i++; alert(txt+_this.i); }, this.start=function(txt){ setInterval(function(){_this.doIt(txt)},2000); } }; var myText=new test(); myText.start("caiying2009_"); </script> 就是你问的作用或问题!this.value虽然说是公共。也只能说是相对面言。你这里有一个闭包问题!大概是这样: function(){ function (){do.....}}这种情况,外部函数不可以访问内部函数的任务value 这是绝对的。 简单的javascript贪吃蛇 梅花雪大哥的树怎么做成动态的啊 高分求:javascript中c#实现Server.UrlEncode(); 剩余时间 请问怎么样可以令两个图标同时浮动漂移,在线等,急!!! 请各位高手看一下这个函数错在哪里?请指正一下 关于字符串 写了一个倒计时效果练手,请教如何改善?谢谢! 点击别的按钮,让下拉框是下拉状态 jquery改变行颜色.... 关于图片预览的问题 表单全部置空
var test=function(){
var _this=this
_this.i=0,
_this.getValue=function(){
return 100;
},
_this.doIt=function(){
_this.i++;
alert("kj___" +_this.i);
},
_this.start=function(){
setInterval(this.doIt,2000);
}
};
var myText=new test();
myText.start();
</script>
var test=function(){
this.i=0
}
test.prototype={
doIt:function(txt)
{
this.i++;
alert("kj___" +this.i);
}, start:function(){
var o=this
setInterval(function(){o.doIt()},2000);
}
};
var myText=new test();
myText.start();
</script>
var test=function(){
this.i=0,
this.getValue=function(){
return 100;
},
this.doIt=function(_object,txt)
{
_object.i++;
alert("kj___" +txt);
}, this.start=function()
{
_object = this;
setInterval(function()
{
_object.doIt.call(this,_object,_object.i);
},2000);
}
};
var myText=new test();
myText.start();
</script>
var test=function(){
this.i=0,
this.getValue=function(){
return 100;
},
this.doIt=function(_object,txt)
{
_object.i++;
alert("kj___" +txt);
}, this.start=function()
{
_object = this;
setInterval(function()
{
_object.doIt.call(this,_object,_object.i);
},2000);
}
};
var myText=new test();
myText.start();
</script>
this指针放到方法中,需要“替代”一下子^_^
<script>
var test=function(){
var _this=this
this.i=0,
this.getValue=function(){
return 100;
},
this.doIt=function(){
_this.i++;
alert("kj___" +_this.i);
},
this.start=function(){
setInterval(_this.doIt,2000);
}
};
var myText=new test();
myText.start();
</script>
<script>
var test=function(){
var _this=this
this.i=0,
this.getValue=function(){
return 100;
},
this.doIt=function(txt) {
_this.i++;
alert("kj___" +txt);
},
this.start=function(){
setInterval(function(){_this.doIt( _this.i)},2000);
}
};
var myText=new test();
myText.start();
</script>
var test=function(){
var _this=this
this.i=0,
this.getValue=function(){
return 100;
},
this.doIt=function(txt) {
_this.i++;
alert(txt+_this.i);
},
this.start=function(txt){
setInterval(function(){_this.doIt(txt)},2000);
}
};
var myText=new test();
myText.start("caiying2009_");
</script>
this.value虽然说是公共。也只能说是相对面言。
你这里有一个闭包问题!
大概是这样: function(){
function (){do.....}
}
这种情况,外部函数不可以访问内部函数的任务value 这是绝对的。