易截截图软件、单文件、免安装、纯绿色、仅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打开新窗口


语法
oNewWindow = window.open( [sURL] [, sName] [, sFeatures] )
sURL 可选. URL 字符串 . 如果URL为空, 将以about:blank打开.
sName 可选. 字符串 描述打开窗口的名字(name). 可以做为form 和 a 标签的TARGET属性值 .
sFeatures 可选. 字符串 格式如"fullscreen=yes,toolbar=yes".channelmode = { yes | no | ......

利用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如何动态的设置表格的样式


二、动态给表插入行:
function addRow(){
  //动态插入一行
  var oRow1=mediaMes.insertRow(mediaMes.rows.length);
  //设置tr的id
  oRow1.id="tr"+thisId;
  //获得表总的行数
  var aRows=mediaMes.rows;
  //获得新添加行的列集合
  var aCells=oRow1. ......

javascript;拼图游戏(可自选图片和设置行列数)

思路:浏览图片,读取其宽度ImageW,高度值ImageH。读取用户输入的分成几行Row几列Col。
         每个方块:boxW=ImageW/Col;boxH=ImageH/Row;
         在1到Row*Col中随机,第i个图片的位置设为pos【i】。然后动态创建div生成Row* ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号