<script language="javascript">
function JSClass()
{
this.m_Text ="division element";
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
this.m_Element.attachEvent('onclick', this.ToString);
}
JSClass.prototype.Render = function()
{
document.body.appendChild(this.m_Element);
}; JSClass.prototype.ToString = function()
{
alert(this.m_Text);
}; var jc = new JSClass();
jc.Render();
jc.ToString();</script>
为什么上面的结果会是:显示"division element",同时提示“division element”,确定后点击文字"division element",将会显示:"undefined"。
为什么是undefined。不大明白,在此发帖请教了......
function JSClass()
{
this.m_Text ="division element";
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
this.m_Element.attachEvent('onclick', this.ToString);
}
JSClass.prototype.Render = function()
{
document.body.appendChild(this.m_Element);
}; JSClass.prototype.ToString = function()
{
alert(this.m_Text);
}; var jc = new JSClass();
jc.Render();
jc.ToString();</script>
为什么上面的结果会是:显示"division element",同时提示“division element”,确定后点击文字"division element",将会显示:"undefined"。
为什么是undefined。不大明白,在此发帖请教了......
<body>
</body>
<script language="javascript">
function JSClass()
{
this.m_Text ="division element";
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
(function(a){
a.m_Element.onclick=function(){a.ToString()}
})(this) }
JSClass.prototype.Render = function()
{
document.body.appendChild(this.m_Element);
}; JSClass.prototype.ToString = function()
{
alert(this.m_Text);
}; var jc = new JSClass();
jc.Render();
jc.ToString(); </script>
{
alert(this.m_Text);
}; js在生成div层时第一次alert的是jc.m_Text;
而你点击层的时候alert的是div层的m_Text属性,但是m_Text这个属性并不存在,而提示了undefined以下为修改后代码<body></body>
<script language="javascript">
function JSClass()
{
this.m_Text ="division element";
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
//this.m_Element.attachEvent('onclick', this.ToString);
this.m_Element.onclick=function(){
alert(this.innerHTML);
}
}
JSClass.prototype.Render = function()
{
document.body.appendChild(this.m_Element);
};
/*
JSClass.prototype.ToString = function()
{
alert(this.innerHTML);
};
*/
var jc = new JSClass();
jc.Render();
jc.ToString(); </script>