js 构造函数是被什么调用的
生活随笔
收集整理的這篇文章主要介紹了
js 构造函数是被什么调用的
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我的理解是,如果通過new運算符調用函數,函數的作用就是構造函數,調用結束會返回一個對象,這個對象的上級就是全局對象,因此可以理解為就是全局對象調用了構造函數,產生了新的下級對象。如果不使用new算符,就只是在全局對象上調用函數,這時函數中的屬性的方法添加給全局對象。
Foo 函數只有在 var foo = new Foo("moment") 這種調用下,才能叫構造函數。此時會創建一個新的對象,Foo 函數中的 this 會指向這個新的對象,如果 Foo 函數沒有返回值(例子中就是這種情況),那通過構造形式調用的這個函數,就會返回剛剛新建的那個對象。
但是,如果你不通過 new 來調用,如:var notfoo = Foo("globalname") ,這就是個普通函數調用,并且沒有返回值,所以 notfoo 其實是 undefined,并且此時 this 會綁定到全局對象上,此時全局對象會多一個屬性 name,并且 name 的值為 "globalname" 。
new是一個運算符,具體誰調用了構造器應該是javascript內部做的,看起來像是那個空對象。
Foo 函數只有在 var foo = new Foo("moment") 這種調用下,才能叫構造函數。此時會創建一個新的對象,Foo 函數中的 this 會指向這個新的對象,如果 Foo 函數沒有返回值(例子中就是這種情況),那通過構造形式調用的這個函數,就會返回剛剛新建的那個對象。
但是,如果你不通過 new 來調用,如:var notfoo = Foo("globalname") ,這就是個普通函數調用,并且沒有返回值,所以 notfoo 其實是 undefined,并且此時 this 會綁定到全局對象上,此時全局對象會多一個屬性 name,并且 name 的值為 "globalname" 。
new是一個運算符,具體誰調用了構造器應該是javascript內部做的,看起來像是那個空對象。
總結
以上是生活随笔為你收集整理的js 构造函数是被什么调用的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样同时让Word文档中有横向和竖向的页
- 下一篇: 明日之后100000金条兑换码?