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来做,具体如何做,还有待进一步实验。
相关文档:
//后台CS调用前台JS方法
ClientScript.RegisterStartupScript(this.GetType(), "onclick", "<script>CheckInput()</script>");
//校验输入框是否为空,校验是否是数字
<script type="text/javascript" language="javascript">
function CheckInput ......
Javascript刷新页面的几种方法:
1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand('Refresh')
6 window.navigate(location)
7& ......
在js中,每个对象都有一个prototype属性:返回对象类型原型的引用。很拗口!习语“依葫芦画瓢”,这里的葫芦就是原型,那么“瓢.prototype” 返回的就是葫芦,或者“瓢.prototype= new 葫芦()”。
prototype的用途:
继承
有一个对象--子类:
function 子类() {
this.lastname = ......
定义与用法
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:
在下 ......
标准的Web 组成应该包括3 部分:结构、行为和表现。这种思想最早在微软设计的
DHTML模型中初步提出来,但是很不规范,也不成系统。后来,W3C(World Wide Web
Consortium,万维网联盟)组织规范了Web 的构成。根据W3C 制订的标准,Web 标准不
是某一个标准,而是一系列标准的集合。完整的Web 应该由以下3 部分组成:
结 ......