易截截图软件、单文件、免安装、纯绿色、仅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访问父窗口的变量或方法


AA.HTM
-------------------------------------
<!--
showModalDialog函数的使用   (转)     
本范例可以实现弹出一个模态窗口,并演示了两种接收和传递参数的方法,同时可以接受模态窗口返回的多个变量   
-->
<html>    &nbs ......

Javascript 之apply()

1、对象的继承,一般的做法是复制:Object.extend
prototype.js的实现方式是:
Object.extend = function(destination, source){
for (property in source) {
destination[property] = source[property];
}
return destination;
......

Javascript 之prototype属性

在js中,每个对象都有一个prototype属性:返回对象类型原型的引用。很拗口!习语“依葫芦画瓢”,这里的葫芦就是原型,那么“瓢.prototype” 返回的就是葫芦,或者“瓢.prototype= new 葫芦()”。
prototype的用途:
继承
有一个对象--子类:
function 子类() {
this.lastname = ......

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代码实现图片玻璃特效

文件内容如下:(两个文件glossy.js和glossy.html)
/**********************************  glossy.js  ***********************************/
 /**
* glossy.js 1.31 (19-Jul-2007)
* (c) by Christian Effenberger
* All Rights Reserved
* Source: glossy.netzgesta.de
* Distrib ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号