函式作為建構函式執行 和 作為普通函式執行的區別

2021-08-29 19:19:28 字數 751 閱讀 7905

看下面js**

function dwn(s)

function double(value)

var d1 = new double(1243.34);

var d2 = double(34.32);

dwn(d1);

dwn(d2);

[b]執行結果[/b]

function double(value)

function double(value)

function double(value)

undefined

[object object]

34.32

[b]說明:[/b]

this.constructor的值為 建構函式(如果被當作乙個建構函式的話);如果用普通方法呼叫時,它的值為undefined

arguments.callee用來引用當前正在執行的函式。

所以可以通過這兩個語法特性在函式裡判斷是哪種呼叫

function double2(value)

}else

}var d3 = new double2(1243.34);

var d4 = double2(34.32);

dwn(d3);

dwn(d4);

[b]結果:[/b]

建構函式:1243.34

普通函式:34.32

function作為建構函式和非構造函式呼叫的區別

var currenttime date 能生成乙個當前時間的日期物件,var currenttime new date 也能生成乙個同樣的物件。如果你看過一些框架,那麼你會發現有的框架生成物件寫法是 new classname 有的框架是 classname 那麼兩種方式有什麼區別呢?假設我們定義...

建構函式與普通函式執行區別

建構函式設計模式 當我們使用new 執行函式時,此時的函式變成了乙個類,返回結果叫做當前類的例項 普通函式執行 1.形成乙個新的私有作用域 2.形參賦值 3.變數提公升 4 自上而下之下 return的值就是要的結果 建構函式執行 1.形成乙個新的私有作用域 2.形參賦值 3.變數提公升 4.執行前...

建構函式和普通函式區別

第一次寫部落格,希望每天都可以堅持下來寫一點點小知識!建構函式和普通函式的區別 1.返回值型別的區別 建構函式無返回值 普通函式有返回值,即使無返回值,也要加乙個void 2.函式名的區別 建構函式的函式名必須與類名一致 普通函式的函式名只要符合識別符號的命名規範就好。3.呼叫方式的區別 建構函式是...