JS08

一临庇、創(chuàng)建相同屬性和方法的對象

1、原始方法創(chuàng)建對象

? ? ? ? -- 代碼重復

? ? ? ? var obj1 = {}

? ? ? ? obj1.name = "小紅";

? ? ? ? obj1.age = 12;

? ? ? ? var obj2 = {}

? ? ? ? obj1.name = "小黑";

? ? ? ? obj1.age = 13;

2麸塞、工廠模式

? ? ? ? function createUser(name,age){

? ? ? ? ? ? ? ? var obj = new Object();//創(chuàng)建對象? ? ? ? ? ? ? --獲取原料

? ? ? ? ? ? ? ? obj.name=name;? ? ? ? //給對象添加屬性和方法? ? --加工

? ? ? ? ? ? ? ? obj.age=age;

? ? ? ? ? ? ? ? obj.say = function(){console.log("能吃能睡")}

? ? ? ? ? ? ? ? return obj;? ? ? ? ? //返回對象? ? ? ? ? ? ? ? --出廠

? ? ? ? }

? ? ? ? var obj1 = createUser('小紅',12);

? ? ? ? var obj2 = createUser('小黑',13);

3秃臣、構造函數(shù)this --實例化本構造函數(shù)的對象 (本對象)

? ? ? ? function Createuser(name,age){

? ? ? ? ? ? ? ? this.name=name;

? ? ? ? ? ? ? ? this.age=age;

? ? ? ? ? ? ? ? this.say = function(){console.log("能吃能睡")}

? ? ? ? ? ? ? ? //隱式返回 this

? ? ? ? }

? ? ? ? var obj1 = new Createuser('小紅',12);

? ? ? ? var obj2 = new Createuser('小黑',13);

二、構造函數(shù)

1.別的語言中(class)

2.ECMA定義:

? ? ? ? Constructor?is a function that?creates?and?initializes?the newly created object.

? ? ? ? 構造函數(shù)是用來新建同時初始化一個新對象的函數(shù)

三哪工、構造函數(shù)特點

1.每個對象都有與之相對應的構造函數(shù)

? ? ? ? var arr = new Array();

2.一個構造函數(shù)可以有多個對象

? ? ? ? var arr1 = new Array();

? ? ? ? var arr2 = new Array()

四奥此、構造函數(shù)判斷

? ? ? ? var o = {};var a = [];

? ? ? ? document.write(o instanceof Object);

注意:不能用來判斷數(shù)字和字符串

五弧哎、構造函數(shù)的獲取

? ? ? ? constructor 屬性 -- 所有的對象都具有constructor? 獲取對象的構造函數(shù)

? ? ? ? function demo(){}; demo的構造函數(shù):demo.constructor;

? ? ? ? var num = 10;? ? num 的構造函數(shù)? num.constructor

六、數(shù)字調用constructor 錯誤

? ? ? ? 使用10..constructor

? ? ? ? 使用(10).constructor

七得院、JavaScript中的特殊情況

? ? ? ? Number數(shù)值 在new的時候是一個Object對象但是正常使用是number傻铣。

八章贞、構造函數(shù)與普通函數(shù)

1祥绞、普通函數(shù)

? ? ? ? 不需要用new關鍵字調用

? ? ? ? 可以用return語句返回值

? ? ? ? 函數(shù)內部不建議使用this關鍵字

? ? ? ? 函數(shù)命名以駝峰方式,首字母小寫

2鸭限、構造函數(shù)----涉及更加的底層

? ? ? ? 用new關鍵字調用

? ? ? ? 函數(shù)內部可以使用this關鍵字

? ? ? ? 默認不用return返回值(隱式返回this)

? ? ? ? 函數(shù)命名建議首字母大寫蜕径,與普通函數(shù)區(qū)分開

? ? ? ? 普通函數(shù)可以是構造函數(shù)的一個方法

九、對象的引用比較

? ? ? ? var bool1 = new Boolean(1);

? ? ? ? var bool2 = new Boolean(1);

? ? ? ? console.log(bool1 == bool2);? //返回false ? ?

? ? ? ? var arr1 = [1,2,3];

? ? ? ? var arr2 = [1,2,3];

? ? ? ? console.log(arr1 == arr2);? //返回false

? ? ? ? 原始類型的數(shù)據(jù)比較 只是值的比較

? ? ? ? 對象類型的數(shù)據(jù)比較 需要值和引用地址都相同

十败京、原型

? ? ? ??使用構造函數(shù)每創(chuàng)建一次對象就產生一份方法(屬性)

資源的占用較大

1兜喻、對象的原型prototype讓公用的方法或者屬性在內存中只存在一份

2、每個函數(shù)在創(chuàng)建的時候都自動添加了prototype屬性赡麦,這就是函數(shù)的原型

3朴皆、prototype是函數(shù)的內置屬性

4、原型也是對象

5原型是添加在構造函數(shù)下面的

? ? ? ? 通過new Array() 創(chuàng)建的對象的原型是Array.prototype

? ? ? ? 通過new Date()? 創(chuàng)建的對象的原型是Date.prototype

? ? ? ? ......

? ? ? ? 通過直接量設置的對象? var a = true;

? ? ? ? 原型是a.constructor.prototype

十一泛粹、原型中的屬性(方法) 與 對象中的屬性(方法)區(qū)別

? ? ? ? 類似于:class(原型屬性)? style(普通屬性)

? ? ? ? 對象屬性的優(yōu)先級 >? 原型的屬性優(yōu)先級

? ? ? ? [1,2,3].index = "index";

? ? ? ? Array.prototype.index = "myindex";

? ? ? ? console.log([1,2,3].index);

十二遂铡、將構造函數(shù)中的方法寫在原型中

? ? ? ? function Createuser(name,age){

? ? ? ? ? ? ? ? this.name=name;

? ? ? ? ? ? ? ? this.age=age;

? ? ? ? }

? ? ? ? Createuser.prototype.say = function(){console.log("能吃能睡")}

? ? ? ? var obj1 = new Createuser('小紅',12);

? ? ? ? var obj2 = new Createuser('小黑',13);

? ? ? ? console.log(obj1.say == obj2.say);//返回true

十三、使用 Object.create()創(chuàng)建對象 傳入對象原型

? ? ? ? function Demo(){this.name="小毛"}

? ? ? ? Demo.prototype.add=function(){}

? ? ? ? var index = Object.create(Demo.prototype);

? ? ? ? 傳入null,創(chuàng)建一個沒有原型鏈的對象

? ? ? ? 參數(shù)二:傳入對象描述

? ? ? ? var obj = Object.create(null,{

? ? ? ? ? ? ? ? ? ? ? ? size:{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? value:10

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? })

十四晶姊、獲取對象的原型

? ? ? ?ECMA5新方法:? Object.getPrototypeOf({});

十五扒接、原型中的this

? ? ? ? (本對象)? 調用此方法的對象

? ? ? ? 給數(shù)組原型添加去重的方法

? ? ? ? 關于map? indexOf? 不兼容IE8的問題

十六、原型鏈

? ? ? ? JavaScritp引擎在訪問對象的屬性時们衙,如果在對象本身中沒有找到钾怔,則會去原型鏈中查找,如果找到蒙挑,直接返回值宗侦,如果整個鏈都遍歷且沒有找到屬性,則返回undefined.

十七忆蚀、自定義原型繼承

? ? ? ? Weapon->(sword gun knife)->(武器的展示 描述)

十八矾利、對象的方法

? ? ? ? 對象的方法由:類方法? 對象方法? 原型方法構成

? ? ? ? 對象的屬性由:類屬性? 對象屬性? 原型屬性構成

十九、關于對象的proto

? ? ? ? 對象的內置屬性蜓谋,不是標準的屬性梦皮。IE不支持。

二十桃焕、判斷自有屬性 --hasOwnProperty 返回true | false

? ? ? ? 構造函數(shù)內存在的屬性或者方法屬性自有屬性

? ? ? ? 在原型上添加的不屬于自有屬性

? ? ? ? if (list.hasOwnProperty(i)) {? //獲取一組li? 遍歷

? ? ? ? ? ? ? ? ? ? ? ?document.write(list[i]);

? ? ? ? }

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末剑肯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子观堂,更是在濱河造成了極大的恐慌让网,老刑警劉巖呀忧,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異溃睹,居然都是意外死亡而账,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門因篇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泞辐,“玉大人,你說我怎么就攤上這事竞滓「篮穑” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵商佑,是天一觀的道長锯茄。 經常有香客問我,道長茶没,這世上最難降的妖魔是什么肌幽? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮抓半,結果婚禮上喂急,老公的妹妹穿的比我還像新娘。我一直安慰自己琅关,他們只是感情好煮岁,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涣易,像睡著了一般画机。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上新症,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天步氏,我揣著相機與錄音,去河邊找鬼徒爹。 笑死荚醒,一個胖子當著我的面吹牛,可吹牛的內容都是我干的隆嗅。 我是一名探鬼主播界阁,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胖喳!你這毒婦竟也來了泡躯?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎较剃,沒想到半個月后咕别,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡写穴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年惰拱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啊送。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡偿短,死狀恐怖,靈堂內的尸體忽然破棺而出删掀,到底是詐尸還是另有隱情翔冀,我是刑警寧澤导街,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布披泪,位于F島的核電站,受9級特大地震影響搬瑰,放射性物質發(fā)生泄漏款票。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一泽论、第九天 我趴在偏房一處隱蔽的房頂上張望艾少。 院中可真熱鬧,春花似錦翼悴、人聲如沸缚够。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谍椅。三九已至,卻和暖如春古话,著一層夾襖步出監(jiān)牢的瞬間雏吭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工陪踩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杖们,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓肩狂,卻偏偏與公主長得像摘完,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子傻谁,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產生大量相似的商品孝治,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,724評論 2 17
  • 一荆秦、理解對象 1.創(chuàng)建 ①構造函數(shù) new Object ②對象字面量 var o = {}; 2.屬性類型 ①數(shù)...
    duJing閱讀 417評論 0 0
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,371評論 2 36
  • 一篱竭、面向過程和面向對象的區(qū)別、聯(lián)系 1.面向過程編程:注重解決問題的步驟,分析問題需要的每一步,實現(xiàn)函數(shù)依次調用步绸。...
    空谷悠閱讀 897評論 1 11
  • 面向對象編程掺逼,oop并不是針對與javascript,很多語言都實現(xiàn)了oop這樣一個編程發(fā)法論瓤介,比如說java吕喘,c...
    深沉的簡單閱讀 427評論 0 3