LZ说的三处的this都是指JSClass的当前实例的指针, 提供了一种访问自己的属性和方法的方式
类似PHP等语言也支持这样的方式
类似PHP等语言也支持这样的方式
解决方案 »
- 一个奇怪的问题:jquery插入行
- 网站要怎么添加"使用QQ账户登录"的功能呢?
- 在用JS的Window.showModalDialog()方法时,在Dialog中提交一次后,转到另一个页面后Dialog窗口的Title就显示为空了。
- 怎样用滑快来实现时间的改变
- javascript 的array问题
- 关于apply call 关于不定长参数
- 用js控制网页链接的css文件的问题
- 我想做一个类似软件的帮助文档的网页页面,做成左边是工具菜单,像文件夹那种,可以点击链接,右边是对应各项的那种,请问如何实现?
- 子窗口怎么让父窗口跳转
- jquery-ajax-pager 一个页面内多分页对象
- 在IE7下Iframe不能100%显示的问题
- [高分诚意求助] 关于省市县三级下拉菜单的JavaScript代码分离成独立的.js文件的解决,以及另一个疑问
相当于就是类里的属性
var jc = new JSClass();
jc.m_Element;
jc.m_text;
{
this.m_Text = 'division element';
this.m_Element = document.createElement('DIV');
this.m_Element.innerHTML = this.m_Text;
//第一处,下面这句的this指什么东东?
this.m_Element.attachEvent('onclick', this.ToString);
}
//第二处,这句的this指什么东东?
JSClass.prototype.Render = function()
{
document.body.appendChild(this.m_Element);
}
//第三处,这句的this指什么东东?
JSClass.prototype.ToString = function()
{
alert(this.m_Text);
}; var jc = new JSClass();
jc.Render();
jc.ToString(); 它先给JSClass类加了个对象“m_Element”,是个DIV,this代表JSClass本身。第一处的This是给DIv的对象加了个Onclick的事件,表示Onclick时运行ToString事件。
第二处的This是表示运行Render方法的对象。语句作用是给JSClass加了个属性,表示JSClass的实例有个叫“Render”的方法,可以将JSClass中的“m_Element”对象加载(用AppendChild方法)到document.body的对象里。
第三处是表示运行ToString方法的对象。是对JSClass类加了第三个属性,表示在运行ToString方法时,用ALert的命令显示出“m_Text”的内容。 最后那段内容,意思是先用JSClass的类建了一个叫jc的实例,
然后运行JSClass类的Render方法,将jc实例中的DIV加载到BODY对象中。
最后Alert出jc.m_Text的内容。
{
this.m_Text = 'division element'; //定义了一个字符串
this.m_Element = document.createElement('DIV'); //建立了一个DIV元素
this.m_Element.innerHTML = this.m_Text; //将新建DIV元素m_Element中的内容改为第一个字符串m_Text的内容
this.m_Element.attachEvent('onclick', this.ToString); //为DIV(m_Element)加载事件Onclick,点击时运行JSClass类的ToString方法。
}JSClass.prototype.Render = function() //为JSClass类添加Render方法
{
document.body.appendChild(this.m_Element); //将JSClass类中的m_Element元素加载到页面的Body对象中。
}JSClass.prototype.ToString = function() //为JSClass类添加ToString方法
{
alert(this.m_Text); //将JSClass类中的m_Text中的内容用Alert的方法显示
};var jc = new JSClass(); //新建一个实例
jc.Render(); //运行JSClass的Render方法,将jc中的DIV放到BODY中
jc.ToString(); //显示jc.m_Text的内容
事实上,jc.ToString();不是jc.m_Text的内容,是undefined。不知道哪个能给解释一下,你们再试试呗。
你用下面的语句尝试一下就知道了
var jc = new JSClass('a','b','c'); //新建一个实例
jc.Render(); //运行JSClass的Render方法,将jc中的DIV放到BODY中
jc.ToString(); //显示jc.m_Text的内容
//jc.Render(); 你这样调用body对象没有生存``会出错` 注释就可以看到效果了 jc.ToString();或者
window.onload = function(){
var jc = new JSClass();
jc.Render();
jc.ToString();
}
this 关键字通常在对象的 构造函数中使用,用来引用对象。示例
在下面示例中,this 指的是新创建的 Car 对象,并给三个属性赋值。 function Car(color, make, model){
this.color = color;
this.make = make;
this.model = model;
}