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

javascript中的成员函数调用的一个小问题

首先看demo代码:
var student={
name:"leo",
intro:function(){
alert("my name is "+this.name);
}
}
var teacher=function(f){
f();
}
teacher(student.intro); 
在上面的demo,可以看到显式的定义了一个对象student,有一个成员函数intro和一个成员变量。
另外定义了一个函数teacher,接受一个函数作为参数,并调用了这个函数。
试运行,我们将student的成员函数intro作为参数传给teacher函数调用。本来intro会访问student的成员变量name,但是在实际运行中却不像我们想的那样,被teacher调用以后,intro内部使用的this就不是指向student而是指向window对象了。
可以看到,这种情况下,成员函数失去了他本身的对象环境,而暴露在外面作为window对象的成员函数了。
这个例子可以帮助我么理解javascript的运行机制和对象机制。
另外,这种情况的解决方法,我觉得是利用caller或者callee来做,具体如何做,还有待进一步实验。


相关文档:

JavaScript的日期处理

var myDate = new Date();
myDate.getYear();        //获取当前年份(2位)
myDate.getFullYear();    //获取完整的年份(4位,1970-????)
myDate.getMonth();       //获取当前月份(0-11,0代表1月)
myDate.getDate();    ......

JavaScript代码(1)

//后台CS调用前台JS方法
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script>CheckInput()</script>");
//校验输入框是否为空,校验是否是数字
<script type="text/javascript" language="javascript">
         function CheckInput ......

JavaScript prototype 属性

定义与用法
The prototype property allows you to add properties and methods to an
object.
prototype属性允许你向一个对象添加属性和方法
Syntax
语法
object.prototype.name=value
Example 1
实例
In this example we will show how to use the prototype property to add a
property to an object:
在下 ......

利用javascript验证邮箱地址是否合法

源代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>验证邮箱地址合法性</title>
    <sc ......

关于javascript 匿名函数的调用方式

今天看jQuery的时候发现的书写形式原来没有见过 如下:
(function(){
statement
...
})();
不理解,后来上网查了一下,原来是javascript匿名函数的调用方式
 http://zhidao.baidu.com/question/95789340.html
javascript 可以以下方式调用函数
声明
a = function(){};
调用
a();
可以理解为
(function(){ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号