js类 this关键字机制的疑问
<!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
JavaScript中this关键字使用方法详解
NULL 博文链接:https://wv1124.iteye.com/blog/505231
js中的this关键字详解
this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, 代码如下: function test(){ this.x = 1; } 随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。 下面分四种情况,详细讨论this的用法。 情况一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。 请看下面这段代码,它的运行结果是1。 代码如下: function test(){ this.x = 1;
关于js里的this关键字的理解
this关键字在c++,java中都提供了这个关键字,在刚开始学习时觉得有难度,但是只要理解了,用起来就方便多了,下面通过本篇文章给大家详解js里this关键字的理解。 关于this,是很多前端面试必考的题目,有时候在网上看到这些题目,自己试了一下,额,还真的错了!在实际开发中,也会遇到 this 的问题(虽然一些类库会帮我们处理),例如在使用一些框架的时候,例如:knockout,有时候不明白为什么不直接使用this,而要把 this 作为参数传入。 接下来你谈谈我对它的理解,也作为一个笔记,方便以后参阅。有不对的地方,欢迎指出批评。 1. 不像C#,this一定是指向当前对象。
JavaScript中的this关键字介绍与使用实例
当创建一个类的时候,如果希望下面new出来的每个类都拥有一些通用的变量或者其他的函数,这个this关键字这是最好的方式。 当然,既然是面向对象的语言,必然存在访问权限的问题,这里也和this关键字息息相关。下面我们来演示一个例子来说明一下这个类的访问权限的问题. 代码如下://Person类 function Person(){ var name=”abc”;//var声明的都是类内部的私有变量,外部无法访问 var age = 20; this.name2=”edg”;//this声明的是公开变量,外部可以访问 this.show=functio


