<script language="javascript" type="text/javascript">
function CTest(sId){
var aa=this;
this.sId = sId;
this.alertTest = function(){
alert("Hard code Test");
alert("Id:"+aa.sId);
}
this.divObj = document.createElement("DIV");
this.divObj.innerHTML = "测试Alert";
this.divObj.onclick = this.alertTest;
this.getDivObj = function(){
return this.divObj;
}
}var objTest = new CTest("alert test info");document.getElementById("testScreen").appendChild(objTest.getDivObj());</script>
试过可以
function CTest(sId){
var aa=this;
this.sId = sId;
this.alertTest = function(){
alert("Hard code Test");
alert("Id:"+aa.sId);
}
this.divObj = document.createElement("DIV");
this.divObj.innerHTML = "测试Alert";
this.divObj.onclick = this.alertTest;
this.getDivObj = function(){
return this.divObj;
}
}var objTest = new CTest("alert test info");document.getElementById("testScreen").appendChild(objTest.getDivObj());</script>
试过可以
知不知道为什么会这样的呢?
为什么this 不能访问 而 声明一个内部成员来给this赋值就可以. 这样的技巧有没有副作用的?例如其他缺点之类的 :) 感激不尽
这不是什么技巧
主要就是this是指向 当前对象 的指针这样看就清楚了,楼上的基本上已经说完了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD><BODY>
<div id="testScreen"></div>
<script language="javascript" type="text/javascript">
function CTest(sId)
{
this.sId = sId;
var name=this;
this.alertTest = function(){
alert("Hard code Test");
alert("Id:"+this.tagName);
alert("ID:"+name.sId);
}
this.divObj = document.createElement("DIV");
this.divObj.innerHTML = "测试Alert";
this.divObj.onclick = this.alertTest;
this.getDivObj = function(){
return this.divObj;
}
}var objTest = new CTest("alert test info");
document.getElementById("testScreen").appendChild(objTest.getDivObj())</script>
</BODY>
</HTML>其实这也是我们平常在创建prototype的class时调用prototype方法的一个method:
http://blog.csdn.net/bluedestiny/archive/2006/03/20/630068.aspx