日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

构造函数。

發布時間:2023/12/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 构造函数。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是構造函數?

1,構造函數就是一個普通的函數,創建方式和普通函數沒有區別,

不同的是構造函數習慣上首字母大寫.

2.構造函數和普通函數的區別就是調用方式的不同

普通函數是直接調用,而構造函數需要使用new關鍵字來調用.

二、構造函數的執行流程

1.立刻創建一個新的對象

2.將新建的對象設置給函數中的this,在構造函數中可使用this來引用新建的對象

3.逐行執行函數中的代碼

4.將新建的對象作為返回值返回

-使用同一個構造函數創建的對象,我們稱為一類對象,

也將一個構造函數稱為一個類。

我們將通過一個構造函數創建的對象,稱為該類的實例

- 對this的情況進行總結:

1.當以函數的形式調用時,this就是window對象

2.當以方法的形式調用時,this就是調用方法的這個對象

3.當以構造函數的形式調用時,this就是新創建的對象

使用instanceof 可以檢查一個對象是否是一個類的實例

語法:對象 instanceof 構造函數

如果是實例,則返回true,否則返回false

三、sayhello方法

???- 在創建Person構造函數中,為每個對象都添加了一個sayhello方法

目前我們的方法都是在構造方法內部創建的,也就是構造函數每執行一次就會創建一???個新的sayhello方法,也就是說所有實例的sayhello都是唯一的

這樣就導致了構造函數執行一次就會創建一個新的方法

執行多少次就會創建多少個新的方法,而這些方法都是一模一樣的,這樣就導致了內存空間的浪費,其實我們可以讓所有對象共享同一個方法

?????

  • 原型對象 ???

???-我們創建的每一個函數,解析器都會向函數中添加一個屬性prototype

這個屬性對應著一個對象,這個對象就是我們所謂的原型對象

如果函數作為普通函數調用prototype沒有任何作用

當函數以構造函數的形式調用時,它所創建的對象中都有會一個隱藏的屬性

指向該構造函數的原型對象,我們可以通過__proto__來訪問該屬性

?????

????原型對象就相當于一個公共的區域,所有同一個類的實例都可以訪問到這個原型對象

我們可以將對象中共有的內容,統一設置到原型對象中

注:當我們訪問對象的一個屬性或方法時,它會先在對象自身中尋找,如果有則直接使用,如果沒有則會去原型對象中尋找。如果找到則直接使用

以后我們創建構造函數時,可以將這些對象共有的屬性和方法,統一添加到構造函數的原型對象中,這樣不用分別為每個對象添加,也不會影響到全局作用域,就可以使每個對象都具有這些屬性和方法了。

注:原型對象也是對象,所以它也有原型,但我們使用一個對象的屬性或方法時,會先在自身中尋找

如果自身中有,則直接使用

如果沒有則去原型對象中尋找,如果原型對象中有則使用,如果沒有則去原型的原型對象中尋找,直到找到Object對象的原型

Object對象的原型沒有原型,如果在Object中依然沒有找到,則返回undefined

?

總結

以上是生活随笔為你收集整理的构造函数。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。