判斷函式是new還是 呼叫

2021-09-30 16:02:43 字數 757 閱讀 8815

具名函式的各種呼叫方式 在一年前已經總結過了。

這篇看看如何判斷乙個函式是被new呼叫的,還是被其它方式呼叫的。

方式1

function person(n,a)else

}var p = new person('jack',30); // --> 這是new呼叫

person(); // --> 這是普通函式呼叫

方式2

function person(n,a)else

}var p = new person('jack',30); // --> 這是new呼叫

person(); // --> 這是普通函式呼叫

方式3

function person(n,a)else

}var p = new person('jack',30); // --> 這是new呼叫

person(); // --> 這是普通函式呼叫

看似很完美,但當把函式/類作為自身例項物件的方法時呼叫就出問題了

function person(n,a)else

}var p = new person('jack',30); // 先new乙個物件

p.fn = person; // 把函式/類 person 賦值給自身物件p的fn屬性

p.fn(); // 這句呼叫時提示「這是new呼叫」,顯然不對

呃,還有更好的方法嗎?

python類中如何判斷是函式還是方法

通常我們認為在類中的函式為方法,類外面宣告def為函式,這種說法有點片面 方法1 class work object defshow self print 執行show方法 work work print work.show print work.show 結果 可以看出通過類方法呼叫為函式,通過例...

在React中如何判斷元件是函式還是類

在react中,支援使用class和function來宣告乙個元件,而實際上,我們在使用這個元件時,因為class和function的不同,所以我們的使用也存在不同 我們知道,function是可以直接呼叫的,但是class是需要通過new去建立乙個例項來使用的 function 你的 functi...

筆記 判斷今年是閏年還是平年

c語言複習整理 問題1 什麼是閏年?維基百科上面是這樣寫的 閏年是比普通年分多出一段時間的年分,在各種曆法中都有出現,目的是為了彌補人為規定的紀年與地球公轉產生的差異。問題2 為什麼會有曆法?為什麼一年是365天,乙個月30天,一天是24小時,1小時卻是60分鐘?這些問題不展開討論,感興趣可以去了解...