js类 this关键字机制的疑问

relax19830426 relax19830426 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近用js+jQuery框架做一个广告图片轮询 因为考虑后期扩展性 所以把需求做成一个类来实现 但在js 时间动画函数中调用类的一个方法时遇到了问题 详细代码不贴出来了 太多 这里有个归纳版 大家帮忙看一下问题所在

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>js测试</title>
<style type="text/css">
#shit{
width:200px;
height:30px;
background-color:#999999;
border:1px solid #006699;
padding:5px;
color:#FFFFFF;
}
</style>
<script language="javascript" src="jquery.js"></script>
<script language="javascript">
function Class_test(){
this.value=1; //一个标记 用于说明问题所在
this.timeID="";
}
Class_test.prototype.shown=function(){
var now=new Date();
if (this.value!=1){
$("#shit").html(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" "+this.value);
}
else{
$("#shit").html(now.getYear()+"-"+now.getMonth()+"-"+now.getDay()+" "+this.value);
}
}
Class_test.prototype.shownTurn=function(){
this.timeID=setInterval(this.shown,1000);
}
$(document).ready(function(){
var aa=new Class_test();
aa.shownTurn(); //直接调用类方法 this.value无法按需求显示标记值
//var timeID=setInterval(aa.shown,1000); //问题同上 无法显示this.value的值
});
</script>
</head>
<body>
<div id="shit"></div>
</body>
</html>

如代码所示 this.value在类实例化后应该就是1 而在执行setInterval中this.value 就丢失了
请问是什么原因
...全文

相关推荐

图解JavaScript中的this关键字

JavaScript 是一种脚本语言,支持函数式编程、闭包、基于原型的继承等高级功能。JavaScript一开始看起来感觉会很容易入门,但是随着使用的深入,你会发现JavaScript其实很难掌握,有些基本概念让人匪夷所思。其中JavaScript 中的 this 关键字,就是一个比较容易混乱的概念,在不同的场景下,this会化身不同的对象。有一种观点认为,只有正确掌握了 JavaScript 中的 this 关键字,才算是迈入了 JavaScript 这门语言的门槛。在主流的面向对象的语言中(例如Java,C#等),this 含义是明确且具体的,即指向当前对象。一般在编译期绑定。而 Java

weixin_38692184

JavaScript中this关键字使用方法详解

NULL 博文链接:https://wv1124.iteye.com/blog/505231

weixin_38669628

js中的this关键字详解

this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, 代码如下:   function test(){     this.x = 1;   } 随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。 下面分四种情况,详细讨论this的用法。 情况一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。 请看下面这段代码,它的运行结果是1。 代码如下:   function test(){     this.x = 1;    

weixin_38682953

关于js里的this关键字的理解

this关键字在c++,java中都提供了这个关键字,在刚开始学习时觉得有难度,但是只要理解了,用起来就方便多了,下面通过本篇文章给大家详解js里this关键字的理解。 关于this,是很多前端面试必考的题目,有时候在网上看到这些题目,自己试了一下,额,还真的错了!在实际开发中,也会遇到 this 的问题(虽然一些类库会帮我们处理),例如在使用一些框架的时候,例如:knockout,有时候不明白为什么不直接使用this,而要把 this 作为参数传入。    接下来你谈谈我对它的理解,也作为一个笔记,方便以后参阅。有不对的地方,欢迎指出批评。    1. 不像C#,this一定是指向当前对象。

weixin_38640674

JavaScript中的this关键字介绍与使用实例

当创建一个类的时候,如果希望下面new出来的每个类都拥有一些通用的变量或者其他的函数,这个this关键字这是最好的方式。 当然,既然是面向对象的语言,必然存在访问权限的问题,这里也和this关键字息息相关。下面我们来演示一个例子来说明一下这个类的访问权限的问题. 代码如下://Person类     function Person(){     var name=”abc”;//var声明的都是类内部的私有变量,外部无法访问      var age = 20;     this.name2=”edg”;//this声明的是公开变量,外部可以访问      this.show=functio

weixin_38638312
评论 8
收藏 已收藏
分享
返回顶部
relax19830426
JavaScript 87,983 成员 224,681 内容