如何通过变量调用函数?

时间:2011-08-11 05:15:56

标签: javascript

我有以下代码,

function MyFunc(){}
var myFunc = new MyFunc();
myFunc();  // through TypeError this line,

如果我想通过变量调用函数,我怎样才能使它工作?

8 个答案:

答案 0 :(得分:6)

通过执行new MyFunc(),您将MyFunc视为构造函数,并使用它创建一个对象。这是将MyFunc视为您想要实例的类。您只想指定另一个变量来指向该函数,因此您不需要new()

您只想设置var myFunc = MyFunc,然后调用myFunc()即可。

答案 1 :(得分:2)

在JavaScript中,函数是第一类对象。要引用该对象,只需使用函数名称。因此,如果您只想通过MyFunc变量拨打myFunc,只需将MyFunc分配给myFunc

function MyFunc(){}
var myFunc = MyFunc; // <=== Change on this line
myFunc();

你原来的一行:

var myFunc = new MyFunc();

...调用MyFunc作为构造函数,myFunc(变量)将接收对作为结果创建的任何对象的引用。 (就像说,var now = new Date();创建一个Date对象并将其分配给now。)

答案 2 :(得分:1)

在javascript中,函数只是另一个变量。

function MyFunc(){}

相同
var MyFunc = function(){};

因此这也是有效的

function MyFunc(){}
var myfunc = MyFunc;
myfunc();

答案 3 :(得分:1)

您创建了使用new关键字创建对象的函数的对象

var myfun_var = function MyFunc(){
       alert("hello");
}

and call myfun_var();

答案 4 :(得分:1)

所以调用new MyFunc()会执行你放在那里的任何代码 - 它的行为有点像其他语言的构造函数 - 虽然不完全正确。

如果它不是拼写错误,你想在你的类上定义一个名为myFunc的函数,如果你想要做类似的事情

MyFunc.prototype.myFunc = function() {
}

答案 5 :(得分:1)

我认为你想要的是:

var myFunc = function(){
    ....
};

myFunc();

这将创建一个名为myFunc的变量,它是对匿名函数的引用。

答案 6 :(得分:1)

http://jsfiddle.net/dWpEz/

var myFunc = function (){ alert("YES"); }
myFunc();

答案 7 :(得分:-2)

案件不符合。 Javascript区分大小写。