创建的新函数居然同时调用了旧函数(原创)

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript">

var fun=function(){
alert("我被调用了吗?")
}
var myfun=new fun()
var myfun=function(a,b,c){
alert(a+b+c)
}
myfun(1,2,3)
</script>
</body>
</html>

 

自己写了个函数,用了new,发现当我调用新函数myfun后,fun函数同时被调用了,当把new去调,var myfun=fun()

后,fun函数也同时被调用!如果不调用fun函数怎么做呢?写成下面的样子

var myfun=fun

注意:没有了括号,因为function是一个对象,我们可以为一个function分配一个指针,这里就让myfun指向fun

 

指针被保存(而不是函数本身),当我们改变函数对象自身的时候,所有指向那个函数的指针都会发生变化。我们可以在底下看到:

Example 5:

function myFunction()
{
  alert(myFunction.message);
}
myFunction.message="old";
var ptr1=myFunction;                 // ptr1 指向 myFunction
var ptr2=myFunction;                 // ptr2 也指向 myFunction
ptr1();                     // 输出 "old"
ptr2();                              // 输出 "old"
myFunction.message="new";
ptr1();                     // 输出 "new"
ptr2();                              // 输出 "new"


  我们可以在一个函数创建之后重新分配它,但是我们需要指向函数对象本身,而不是指向它的指针。

posted @ 2009-04-04 16:56  爱恋永恒  阅读(137)  评论(0)    收藏  举报