再和“面向?qū)ο蟆闭剳賽?- 對象簡介(一)

JavaScript中的面向?qū)ο笫莻€(gè)老生常談的話題,但是依然有很多小伙伴處于懵逼的狀態(tài)。面試時(shí)候最擔(dān)心的就是被問到面向?qū)ο笙嚓P(guān)的內(nèi)容,自己看過無數(shù)的資料,依然對面向?qū)ο蟀偎疾坏闷浣狻5降资裁词窃停渴裁词菢?gòu)造函數(shù)?什么是繼承。。。一提到這些概念那真是欲哭無淚、悲憤交加,甚至恨的直咬牙!所以有必要重新再談一次面向?qū)ο蟆M瑫r(shí)我也希望通過這幾篇文章讓你對面向?qū)ο笥珊奚鷲郏俚綈酆藿患樱詈髳鄣盟廊セ顏恚?/p>

對象

??各位老鐵們應(yīng)該聽過一個(gè)詞叫“一切皆對象”,而“面向?qū)ο蟆?/code>中也帶了一個(gè)“對象”,可見“對象”這個(gè)詞非常重要。所以弄清楚 “對象”是什么尤為重要。

??對象在生活中指的是女朋友或者男朋友,而在JavaScript里說的通俗一點(diǎn)就是一個(gè)放了很多屬性與方法的集合,有很多的屬性與方法是一個(gè)對象最顯著的特點(diǎn)(可以粗暴的認(rèn)為,但凡有屬性與方法的就是個(gè)對象)。JavaScript里除了運(yùn)算符、語句、表達(dá)式(這些都是基本語法,任何一門語言都得有基本的語法)以外,其它的都是對象或者說是某個(gè)對象身上的一部分,所以說js里一切皆對象是有講究的。換句話說,我們在寫js的時(shí)候,其實(shí)都是用一些基本語法去操作對象

1、字符串

'kaivon'.length;         //6 屬性
'kaivon'.substring(2);   //ivon  方法

2、數(shù)字

(12.25).toFixed(1);     //12.3 方法

3、布爾值

true.toString();        //true 方法

4、函數(shù)

const fn=function(){};
fn.name;    //fn    屬性
fn.call(window);    //方法

數(shù)組與對象想必就更不用解釋了

對象分類

在JavaScript中我把對象分為三類,全局對象、內(nèi)置對象、自定義對象

1、全局對象

  • 它是JavaScript預(yù)定義的對象,作為JavaScript的全局函數(shù)和全局屬性的占位符

  • 它是頂層對象,由宿主環(huán)境決定類型
    1、網(wǎng)頁里為window

    this===window;  //true
    

    2、node里為Global

  • 它身上的屬性或方法可以直接使用,不用指定所屬對象

parseInt('12a');   //12
window.parseInt('12a);  //12
String(12); //12
window.String(12);  //12
  • 它有構(gòu)造函數(shù)但無法實(shí)例化
window.constructor===Window; //true
window instanceof Window;   //true
new Window();   //報(bào)錯(cuò)

<br />

2、內(nèi)置對象

  • ECMAScript自己定義的對象,每個(gè)對象都有一個(gè)自己對應(yīng)的構(gòu)造函數(shù)
Object.prototype.constructor===Object;      //true
Array.prototype.constructor===Array;        //true
Function.prototype.constructor==Function;   //true
  • 每個(gè)內(nèi)置對象都是全局對象的一個(gè)屬性(內(nèi)置對象都是全局對象的兒子)
window.Object===Object;      //true
window.Array===Array;        //true
window.Function==Function;   //true
Number.prototype.__proto__===Object.prototype;  //true
String.prototype.__proto__===Object.prototype;  //true
Boolean.prototype.__proto__===Object.prototype; //true
Array.prototype.__proto__===Object.prototype;   //true
Function.prototype.__proto__===Object.prototype;//true

可能有些小伙伴在這里會不理解,沒關(guān)系。這里想讓你知道的是內(nèi)置對象反正能跟Object扯上關(guān)系,后面的文章會詳細(xì)去說,我們要放長線掉大魚。

3、自定義對象

面向?qū)ο蟮膬?nèi)容,后面文章詳細(xì)說

這篇文章主要介紹對象的概念,下篇文章詳細(xì)介紹面向?qū)ο罄锏南嚓P(guān)概念

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容