Javascript中呼叫函式,使用new或者直接呼叫有

2021-03-21 15:56:07 字數 1007 閱讀 1797

1樓:山西優就業

如果是最典型的建構函式模式,必須加上new:

function man(age)

m1=man(20);

m2=new man(21);

m1就是函式man()執行的返回值,也就是undefined. 在函式執行過程中,屬性被加到全域性作用域或者man方法所屬的物件上了。執行之後window.***=="male"

而m2是man的例項,man

function man(age)

m3=man(22);

這個就不需要加new,m3是乙個object,不是man的例項。

native code中,加new就是返回這個建構函式的例項;不加作為函式就返回乙個基本資料型別,或者會報錯 「 dom object constructor cannot be called as a function 」。

date(),不加new返回當前時間,是乙個字串。加new的話,返回當前時間或者把引數格式化得到的時間,是乙個date物件。

string(),不加new將引數格式化為字串,加new則返回的是string物件。它們的區別如下:

var s1=new string(2);

//如果把s1 log到控制台中,輸出 string

var s2=string(2);

//如果把s2 log到控制台中,輸出 '2'

console.log(typeof s1);

//"object"

console.log(typeof s2);

//"string"

s1.pro = 1;

console.log(s1.pro);

//1s2.pro = 1;

console.log(s2.pro);

//undefined

number和string類似。

array,object加不加new貌似是一樣的?

image,xmlhttprequest等不能作為函式使用。

matlab中quadl函式呼叫

類似quadl這類函式被稱為 函式的函式 也就是說,其輸入引數本身是函式 可以是函式控制代碼,如本例的func1,也可以是函式名 quadl這類函式的執行過程中,會呼叫作為輸入引數的那個函式 func1 而後者的第乙個輸入引數由quadl內部來提供。例如,進行積分時,需要根據一定的規則調整積分步長,...

c如何在過載函式中呼叫被過載函式

事先宣告過載函式 c 的基本規則 實體在使用前須先宣告。這裡也是一樣,要呼叫過載版本,須先宣告這個過載版本 c 中函式過載有啥用?類的建構函式跟類名相同,即建構函式都同名。如果沒有函式過載機制,要想例項化不同的物件非常麻煩。操作符過載,本質上就是函式過載,它大大豐富了已有操作符的含義,方便使用,例如...

如何呼叫html中的無函式名的函式的

無函式名的函式,一般都是定義完就呼叫的。例如 function x 56 由於沒有名稱,無法專通過其他方法呼叫 還有屬一種方法 var abc function x,y alert abc 2,3 5 但是這種其實定義乙個變數 html中如何呼叫名為myfunction的函式 html沒有函式可言,...