可能重複:
How to detect if a function is called as constructor?有沒有一種方法讓JavaScript函數知道它是否正常調用或與「新」一起調用?
我想在JavaScript中有一個功能,如果它通常被稱爲其行爲有所不同,或者如果它以創建一個新的實例的引用。可能有很多不同的用途,其中兩個功能可以相關或不相關。其中一個用途是從不必鍵入new
,免除編碼器時,該函數總是被用來創建新實例:
function MyClass(arg1, arg2) {
if(/* not called with "new" */) return new MyClass(arg1, arg2);
// instance initialization stuff here...
}
這樣我就不必鍵入var x = new MyClass(arg1, arg2)
:這將是足夠的輸入var x = MyClass(arg1, arg2)
(但前者也不會錯)。
只是一個可能用途的例子。
可以這樣做嗎?如果是這樣,怎麼樣?
對不起錯過重複 - 我應該找到關鍵字「構造函數」...感謝您的答案! – Tom 2012-07-25 00:45:57