function JSClass(){
this.m_Text = 'division element';
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
if(this.m_Element.attachEvent)
this.m_Element.attachEvent('onclick', this.ToString);
else if(this.m_Element.addEventListener)
this.m_Element.addEventListener('click', this.ToString,false);
else
this.m_Element.onclick = this.ToString;
}
JSClass.prototype.Render = function(){
document.body.appendChild(this.m_Element);
}
JSClass.prototype.ToString = function(){
alert (this); //这个地方的this是上面的this.m_Element吗??即那个‘DIV’?
alert(this.m_Text);
alert(this == window);
}
window.onload = function(){
var jc = new JSClass();
jc.Render();
jc.ToString();
}
<script>
function JSClass(){
this.m_Text = 'division element';
this.m_Element = document.createElement('DIV');
this.m_Element.id="我是DIV"
this.m_Element.innerHTML = this.m_Text;
if(this.m_Element.attachEvent)
this.m_Element.attachEvent('onclick', this.ToString);
else if(this.m_Element.addEventListener)
this.m_Element.addEventListener('click', this.ToString,false);
else
this.m_Element.onclick = this.ToString;
}
JSClass.prototype.Render = function(){
document.body.appendChild(this.m_Element);
}
JSClass.prototype.ToString = function(){
alert (this.id); //这个地方的this是上面的this.m_Element吗??即那个‘DIV’?
alert(this.m_Text);
alert(this == window);
}
window.onload = function(){
var jc = new JSClass();
jc.id="我是jc"
jc.Render();
jc.ToString();
} </script>
//定义了一个类JSClass
function JSClass(){
this.m_Text = 'division element';
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
if(this.m_Element.attachEvent)
this.m_Element.attachEvent('onclick', this.ToString);
else if(this.m_Element.addEventListener)
this.m_Element.addEventListener('click', this.ToString,false);
else
this.m_Element.onclick = this.ToString;
}
//为JSClass类的原型定义了一个render方法,将导致每个JSClass的对象都有一个render方法,方法中的this指向任意一个JSClass对象
JSClass.prototype.Render = function(){
document.body.appendChild(this.m_Element);
}
//为JSClass的原型定义了一个ToString,将导致每个JSClass的对象都一个ToString方法,方法中的this指向任意一个JSClass对象
JSClass.prototype.ToString = function(){
alert (this); //这个地方的this是上面的this.m_Element吗??即那个‘DIV’?
alert(this.m_Text);
alert(this == window);
}
//稍做修改,修改JSClass类的构造函数,让它带有参数
function newJSClass(m_Text){
this.m_Text = m_Text || 'division element';
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
if(this.m_Element.attachEvent)
this.m_Element.attachEvent('onclick', this.ToString);
else if(this.m_Element.addEventListener)
this.m_Element.addEventListener('click', this.ToString,false);
else
this.m_Element.onclick = this.ToString;
}
//新构造函数的原型与原构造函数一样
newJSClass.prototype=JSClass.prototype;
window.onload = function(){
var jc = new JSClass();
jc.Render();
jc.ToString();//先后弹出[objcet objcet],'division element',false
//试试新的构造函数
jc=new newJSClass();
jc.Render();
jc.ToString();//先后弹出[objcet objcet],'division element',false
jc=new newJSClass('abc');
jc.Render();
jc.ToString();//先后弹出[objcet objcet],'abc',false
}希望能帮到你