创建的新函数居然同时调用了旧函数(原创)
<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:
CODE:
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"
{
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"
我们可以在一个函数创建之后重新分配它,但是我们需要指向函数对象本身,而不是指向它的指针。

浙公网安备 33010602011771号