我有下面的代碼,如何通過變量調用函數?
function MyFunc(){}
var myFunc = new MyFunc();
myFunc(); // through TypeError this line,
我怎樣才能使它工作,如果我要調用通過變量的函數?
我有下面的代碼,如何通過變量調用函數?
function MyFunc(){}
var myFunc = new MyFunc();
myFunc(); // through TypeError this line,
我怎樣才能使它工作,如果我要調用通過變量的函數?
案件不符。 Javascript是區分大小寫的。
在JavaScript中,函數只是另一個變量。
function MyFunc(){}
相同
var MyFunc = function(){};
因此,這也是有效
function MyFunc(){}
var myfunc = MyFunc;
myfunc();
*「...與......相同」*不,它不是。第一個是函數聲明,第二個是函數表達式,兩者之間有很大的區別。它們在不同的地方在句法上有效,它們在不同的時間被處理,並且它們對它們所在的範圍有不同的影響。 –
這樣做new MyFunc()
,你治療MyFunc
構造函數,它創建了一個對象。這是將MyFunc
作爲您想要實例的類。你只是想指定另一個變量指向該函數,所以你不想要new
或()
。
你想只設置var myFunc = MyFunc
,然後調用myFunc()
就可以工作。
創建函數的對象的新關鍵字來創建對象
var myfun_var = function MyFunc(){
alert("hello");
}
and call myfun_var();
所以調用new MyFunc()
將EXCUTE你把任何代碼在那裏 - 它的作用有點像其他語言構造 - 雖然不完全是。
如果它不是一個錯字,你想,如果你做的東西像
MyFunc.prototype.myFunc = function() {
}
我想你想要的東西要定義一個名爲myFunc的在你的類中的函數是這樣的:
var myFunc = function(){
....
};
myFunc();
這會創建一個名爲myFunc
的變量,它是對匿名函數的引用。
var myFunc = function(){ alert("YES"); }
myFunc();
在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
。)
你的意思是myFunc,我想通過變量myFunc調用函數,而不是直接調用MyFunc。 – Thomson