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

[翻译]PPK 谈 JavaScript 的 this 关键字


原文:JavaScript - The this keyword
在 JavaScript 中 this 是最强的关键字之一。这篇贴文就是要告诉你如何用好 this。
下面先讲如何在event handling
(事件处理)中用它,再接着是讲 this 的其他用法。
所有者(Owner)
先来看看函数 doSomething() 里的 this 究竟指向(refer to)了什么?
function doSomething() {
this.style.color = '#cc0000';
}
JavaScript的 this 总是指向正执行的函数的所有者。或者是说,它是指向函数这个对象的一种手法。
在页面中定义了
doSomething() 函数时,它的所有者是页面。确切的说是指 JavaScript 的 window 对象(全局对象)。

onclick 属性归属 HTML 元素所有。
这种归属谁所有的权利是 JavaScript 的 OO(面向对象)特性的结果。在 把对象作关联数组
页面中有更多信息。
------------ window --------------------------------------
| / \ |
| | |
| this |
| ---------------- | |
| | HTML 元素 | <-- this ----------------- |
| ---------------- | | doSomething() | |
| | | ----------------- |
| -------------------- |
| | onclick 属性 | |
| -------------------- |
| |
----------------------------------------------------------
这里在 doSomething() 执行时,关键字 this 指向 window(窗口) ,该函数将会改动 window 的 style.color。
而 window 没有 style 这个对象,所以该函数会引发 JavaScript 的错误。
拷贝(copying)
因此,想要用好 this 就请继续往下看。像前面的例子在函数中使用的这种情况,this 指向它归属谁所有的那个 HTML 元素。
也就是说,有个函数拷贝指向 onclick 属性。 我们来看看在传统事件注册
中的情况。
element.onclick = doSomething;
函数是它整个的拷贝,指向 onclick 属性(现在变成了方法)。因此,事件处理被执行时,this 指向 HTML 元素并将改动 color。
----------


相关文档:

Javascript继承机制(call、apply、prototype)

Javascript的继承可以通过call、apply、prototype实现。
1、call:在子类中,用父类.call(this,arg0,arg1...)可以继承父类。注意call的位置,尽量在子类的第一行(js按顺序执行,放在后面可能对子类的其他属性、方法有影响。比如子类和父类有相同名字的方法,后面的覆盖前面的)。
<html>
<head>
<t ......

JavaScript sprintf

Return a formatted string
function sprintf ( ) {
// Return a formatted string
//
// version: 909.322
// discuss at: http://phpjs.org/functions/sprintf // + original by: Ash Searle (http://hexmen.com/blog/)
// + namespaced by: Michael White (http://getsprink.com)
......

javascript解析返回的xml各式的字符串

<script>
var flags ;
  if(window.XMLHttpRequest) { 
   XMLHttpReq = new XMLHttpRequest(); //firefox下执行此语句
   }
   else if(window.ActiveXObject) {
    try{
    XMLHttpReq = new Acti ......

Javascript事件绑定的几种方式(百度电话面试题)

 Javascript的事件绑定主要有四种方法(一下在IE中运行正常,但不保证其他浏览器):
  [注:onXXX为某一事件,fun为某一function,domId为某一DOM对象id,event类型见后边附录。]
1、在DOM中,直接用onXXX="fun();"进行绑定 
2、在Javascript代码中用 DOM对象.onXXX=fun 进行绑定
3、用 DOM对象.attach ......

正则表达式在php,java,javascript中分别应用

在javascript中用法举例
var rule = /^\d+$/;
if(!rule.test(addform.rmb_price.value)) {
alert('rmb_price must be number');
addform.rmb_price.focus();
return false;
}
在php中用法举例
$aa = "/^\d+$/";
if(preg_match($aa, "111")) {
echo "found";
}
在java中用法举例 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号