黑马程序员技术交流社区
标题:
关于js中this的用法
[打印本页]
作者:
HM邱刚权
时间:
2013-4-7 16:16
标题:
关于js中this的用法
本帖最后由 HM邱刚权 于 2013-4-16 17:16 编辑
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function initEvent() {
var tableMain = document.getElementById("tableMain");
var trs = tableMain.getElementsByTagName("tr");
for (var i = 0; i < trs.length; i++) {
var tr = trs
;
tr.onclick = TrOnClick;
tr.style.cursor = "pointer";
}
}
function TrOnClick() {
var tableMain = document.getElementById("tableMain");
var trs = tableMain.getElementsByTagName("tr");
for (var i = 0; i < trs.length; i++) {
var tr = trs
;
if (tr == this) { //不懂这里this是什么意思
tr.style.backgroundColor = "red";
}
else {
tr.style.backgroundColor = "white";
}
}
}
</script>
</head>
<body>
<table id="tableMain">
<tr ><td>喜洋洋</td><td>100</td></tr>
<tr><td>懒洋洋</td><td>10</td></tr>
<tr><td>美洋洋</td><td>60</td></tr>
<tr><td>慢洋洋</td><td>100</td></tr>
<tr><td>软绵绵</td><td>200</td></tr>
</table>
</body>
</html>
<script type="text/javascript">
ShowIt();
</script>
请解释下this在JS的用法
作者:
韦俊琳
时间:
2013-4-7 16:56
大致有4种用法:函数调用,方法调用,构造函数调用,apply调用
具体地,
作为函数调用时,类似于C#中的给当前类的属性赋值,用法如下:
function test() {
this.a = "函数调用";
alert(a);
}
test();
复制代码
作为构造函数调用时,this就是指通过这个构造函数创建出来的对象。例如:
function test() {
this.a= "构造函数调用";
var o = new test();
alert(o.a);
复制代码
作为方法调用时,this就是指这个上级对象。例如:
function test() {
alert(this.a);
}
var o = {};
o.a = "方法调用";
o.b = test;
o.b();
复制代码
作为apply调用时,this指向的是apply中的第一个参数。例如:
var x = 0;
function test() {
alert(this.a);
}
var o = {};
o.a = "apply调用";
o.b = test;
o.b.apply();
o.b.apply(o);
复制代码
作者:
郑丹丹1990
时间:
2013-4-7 22:13
this应该是当前对象它自己吧!
if (tr == this) { //如果tr变量是当前单元格的话。(就如同好多单元格,但tr不一定是当前的单元格(即this))
tr.style.backgroundColor = "red";
}
else {
tr.style.backgroundColor = "white";
}
个人意见仅供参考!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2