日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

js二種特殊數(shù)據(jù)類型 es6如何添加symbol

js二種特殊數(shù)據(jù)類型?
JS有兩種數(shù)據(jù)類型:

js二種特殊數(shù)據(jù)類型 es6如何添加symbol


基本數(shù)據(jù)類型:數(shù)字、字符串、布爾、空、未定義、符號(ES6),可以直接操作變量中存儲的實(shí)際值 。
引用數(shù)據(jù)類型:Object(在JS中,除了基本數(shù)據(jù)類型,所有的對象、數(shù)據(jù)、函數(shù)、正則表達(dá)式都是對象) 。
如何理解JavaScript的原型和原型鏈?
JavaScript中的原型和原型鏈都是實(shí)現(xiàn)OOP的手段 。OOP在JavaScript中的具體實(shí)現(xiàn)如下:
對象是屬性的集合 。特別地,其值是函數(shù)的屬性是方法 。相似對象的公共屬性被提取并聚集在一起形成一個類,這些對象被稱為該類的實(shí)例 。同樣,相似類的公共屬性被提取出來,聚集在一起形成一個新類,這個新類是以前類的超類,以前的類是這個類的子類 。多個超類也可以作為子類來聚集一個新的超類,這個過程會一直持續(xù)下去,直到出現(xiàn)一個名為Object的類,并且它的超類為Null 。
類不僅是公共屬性的集合,還是對象工廠 。類的實(shí)例對象是由該類的構(gòu)造函數(shù)創(chuàng)建的 。構(gòu)造函數(shù)負(fù)責(zé)兩件事:
創(chuàng)建一個對象;
初始化對象;
因為方法已經(jīng)提供了前者的實(shí)現(xiàn),所以構(gòu)造函數(shù)真正需要做的是初始化對象,這分為兩件事:
讓對象具有由類收集的公共屬性;
根據(jù)參數(shù),一些對象的屬性被特殊化;
對于第二件事,沒什么好說的,就是給要初始化的對象添加專門的屬性 。對于第一件事,你也可以模仿后一種實(shí)現(xiàn)方法,但這并不是一個明智的選擇,因為這些公共屬性的值在大多數(shù)情況下是不會改變的 。JavaScript選擇方法是:
將這些公共屬性作為屬性,并賦予它們默認(rèn)的屬性值,創(chuàng)建一個原型對象;
初始化時,原型對象被賦予要初始化的對象的特殊屬性:_ _ proto _ _
也就是說,一個類對應(yīng)一個原型對象,初始化時用_ _ proto _ _連接實(shí)例對象和原型對象 。
特殊屬性__proto__不僅負(fù)責(zé)連接實(shí)例和原型,還負(fù)責(zé)連接子類和超類的原型對象,實(shí)現(xiàn)類之間的繼承關(guān)系 。這樣,一個對象 s類原型,超類原型,超類超類原型...連接成一個 "鏈條 "通過__proto__,稱為對象的原型鏈 。是的,一個對象的__proto__屬性為null,說明這個對象沒有原型鏈,Object類的原型是這樣的 。
為了實(shí)現(xiàn)通過原型初始化實(shí)例的方法,需要在訪問對象的屬性時相互協(xié)作:
讀取屬性值:先在對象中尋找屬性,如果存在則返回其值;否則,在prototype對象中查找,如果存在則返回其值;否則,在原型對象的原型對象中查找,直到原型鏈為空,表示屬性未定義,返回undefined;
給屬性賦值:找到對象中的屬性,如果存在就給它賦值,如果不存在就在對象中創(chuàng)建屬性并給它賦值;
刪除屬性:如果屬性存在于對象中,刪除它,否則不做任何事情 。
這種訪問機(jī)制保證了對象屬性可以覆蓋(揭開)原型屬性,但不會改變原型屬性,這就是OOP的多態(tài)性 。
構(gòu)造函數(shù)在創(chuàng)建對象時需要使用prototype對象,通過prototype屬性知道其對應(yīng)類的prototype對象 。此外,為了讓實(shí)例對象知道誰創(chuàng)建了它,它的構(gòu)造函數(shù)屬性 "抓取 "構(gòu)造函數(shù) 。類的原型對象也被認(rèn)為是由該類的構(gòu)造函數(shù)創(chuàng)建的 。
接下來,讓我們 讓我們看看實(shí)現(xiàn)OOP的具體代碼:
首先,不考慮繼承關(guān)系,聲明類的示例代碼如下:
注意:應(yīng)該避免直接使用特殊屬性__proto__ 。正式的是調(diào)用方法,方法的參數(shù)是要創(chuàng)建的對象的原型對象 。注意:按照OOP語言的傳統(tǒng),構(gòu)造函數(shù)的名字就是類的名字 。
當(dāng)一個函數(shù)被調(diào)用時,如果這個上下文被綁定到一個普通的對象(而不是空的或者全局的對象窗口),這個函數(shù)被作為對象的方法調(diào)用 。

推薦閱讀