易截截图软件、单文件、免安装、纯绿色、仅160KB

详细解读JavaScript的this关键字


用了很久JavaScript,对【this】的认识只局限于以往的凭经验而已,不过今天发现了好东西“http://www.quirksmode.org/js/associative.html”,详细描述了如何使用【this】关键字,在这里我就简短的说一下重点,如果有疑问可以直接参考原文。
在学习过有this的编程语言中,this一般都是指向当前实例对象的,对于JavaScript来说,其实也是这样。但有时候在使用【this】时,会感觉它的行为很奇怪,不能能达到预期的效果,这往往是因为没有正确的了解【this】本身所指向的真正的实例对象所引起的。
在JavaScript中,【this】总是指向执行函数的调用者,或者可以说是指向拥有方法的对象。
function doSomething() {
this.style.color = '#cc0000';

例子中,函数【doSomething】定义在页面中,所以它指向的就应该是当前页面,即全局对象【window】。但是,如果我们在页面中某个元素的属性内部使用了【this】,那么【this】指向的内容就是这个元素。如下面的例子,【this】指的就是元素【input】。
<input type="button" value="Do not touch me!" onclick="alert(this.value);" /> 
再看一个类定义的例子:
function CSDN() {
this.url = "www.csdn.net";
this.author = "KNIGHTRCOM";
}
CSDN.prototype.output = function() {
alert(this.url + " - " + this.author);
}
new CSDN().output(); 
首先定义一个类【CSDN】,并为这个类添加一个【output】方法,output方法内使用的【this】所指向的内容,就是类【CSDN】的实例对象【new CSDN()】。也就是之前说的,【this】指向拥有方法【output】的实例对象【new CSDN()】。
接下来我们来学习一个重要的概念,拷贝与引用。
<mce:script type="text/javascript"><!--
element.onclick = doSomething;
// --></mce:script>
<element onclick="doSomething()"> 
我们比较一下上面两种用法。第一种用法是将函数【doSomething】拷贝到【element】的【onclick】事件句柄中,这样【doSomething】的内容就成为元素【element】的一个方法,当该方法被执行时,【this】所指向的内容即为方法的拥有者【element】。但对于第二种用法(内联方式)来说,实际上是一种变相的调用,当【click】事件被触发时,【doSomething】确实会被调用,但并非作为元素【element】的方法来调用,所以【this】也就不会指向【element


相关文档:

JavaScript在IE地址栏中的妙用

完全打开页面后,在该页的在IE地址栏 或 按Ctrl+O 输入以下代码,回车,就可以得到相应的效果:
1.显示网页中的所有图片
javascript:Ai7Mg6P='';for%20(i7M1bQz=0;i7M1bQz<document.images.length;i7M1bQz++){Ai7Mg6P+='<img%20src='+document.images[i7M1bQz].src+'><br>'};if(Ai7Mg6P!=''){document.wri ......

Javascript DOM学习笔记2


创建文档元素
document.createElement(nodename)
插入元素到文档节点树
parent.appendChild(child)
创建文本节点
document.createTextNode(text)
在现有元素前插入新元素
parentElement.insertBefore(newElement,targetElement)
在现有元素后插入新元素(自编函数)
parentElement.insertAfter(newElement,targe ......

Flex通过javascript读写cookie

最近遇到个问题,开发web项目的时候,可能flex只用来实现项目的部分模块。当flex需要在客户端写入/读取一些状态信息的时候,我们会想到用cookie。flex是不支持cookie的,只有SharedObject这个本地对象。所以解决的办法就有两个:
flex通过调用js来实现对cookie的操作;
js通过flex实现对SharedObject的操作;
这两种方法 ......

javascript,js获得客户端计算机IP或名称方法

1、rcbdyctl
view plaincopy to clipboardprint?
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html;   
charset=gb2312">  
<title>JS获取客户端IP</title>  
</head>  
<b ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号