js源碼理解

var arr = [1,2,3];
arr.push(4);
console.log(arr);//1,2,3,4

arr.addClass('blue');
報(bào)錯(cuò)

我們可以:
arr.proto.addClass = function(){console.log('ok!!')}
arr.addClass();//ok!!

每一個(gè)!每一個(gè)函數(shù)都有prototype屬性
var fn = function(){}
fn.protoType


image.png

其中fn === fn.prototype.constructor

插一段==和===的區(qū)別

1.==
(1)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型

var a = 1;
var b = '1';
var c = true;
alert(a == b); //true
alert(a == c); //true
alert(b == c); //true

(2)一個(gè)基本數(shù)據(jù)類型與一個(gè)引用數(shù)據(jù)類型 :會(huì)將對(duì)象轉(zhuǎn)化為它的原始值新博,在與基本數(shù)據(jù)類型進(jìn)行比較。

var arr = [1,2];
var str = "1,2";
alert(arr == str);  //內(nèi)部執(zhí)行valueOf(),將arr值轉(zhuǎn)化為原始值速兔,但是arr并沒有變化优俘,顯示true
將對(duì)象轉(zhuǎn)化為它的原始值龙填,也就是說后臺(tái)會(huì)自動(dòng)調(diào)用Object.prototype.valueOf()方法:var arr = [1,2];
var str = "1,2";

alert(arr.__proto__.hasOwnProperty("valueOf")); //false
alert(Object.prototype.hasOwnProperty("valueOf")); //true

Object.prototype.valueOf = function(){
    alert("valueOf"); //valueOf 
};

alert(arr == str);  // 因?yàn)樽约簩懙膙alueOf()重新覆蓋了Object.prototype.valueOf()方法,所以不能實(shí)現(xiàn)原始值的轉(zhuǎn)化颗胡,具體請(qǐng)百度valueOf()內(nèi)部實(shí)現(xiàn)機(jī)制,所以此處顯示false

(3). 兩個(gè)引用類型:判斷兩者之間的引用地址

var arr1 = [1,2]; //引用地址1
var arr2 = [1,2]; //引用地址2
alert(arr1 == arr2); //兩者引用地址不同吩坝,顯示false

2===
相對(duì)于"=="來說杭措,只要類型不一致,它就直接返回false
不過還是建議盡量使用"==="钾恢,因?yàn)?=="不嚴(yán)謹(jǐn)手素,可能會(huì)帶來一些違反直覺的后果鸳址。比如我們常使用的對(duì)象,有時(shí)獲取不到而被賦值為undefine的情況泉懦。

var obj = undefined;

if(obj == null){
  console.log("1");  //執(zhí)行
}

if(obj === null){
  console.log("2");  //不執(zhí)行
}

好的稿黍,回來說prototype


image.png
image.png

所有通過函數(shù)new出來的東西都有一個(gè)proto指向這個(gè)函數(shù)的prototype
prototype(顯示原型)
proto(隱是原型)

var arr = [1,2,3]
arr.__proto__ ===  Array.prototype//true
image.png

image.png
var obj = {
fn1:function(){
console.log('fn1');
}
}

console.log(obj.fn1);//fn1
console.log(obj.toString);//['object' ,'object']

當(dāng)在obj中找不到方法是,它回去obj的原型里找
console.log(obj.fn2);//報(bào)錯(cuò)崩哩,無fn2方法
在obj里沒有fn2巡球,obj的原型里也沒有fn2方法

像arr.push(4)
本身arr是沒有push方法的,但是它的原型Array有啊

原型鏈改寫和引用

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末邓嘹,一起剝皮案震驚了整個(gè)濱河市酣栈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汹押,老刑警劉巖矿筝,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異棚贾,居然都是意外死亡窖维,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門妙痹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铸史,“玉大人,你說我怎么就攤上這事怯伊×战危” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵耿芹,是天一觀的道長利赋。 經(jīng)常有香客問我,道長猩系,這世上最難降的妖魔是什么媚送? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮寇甸,結(jié)果婚禮上塘偎,老公的妹妹穿的比我還像新娘。我一直安慰自己拿霉,他們只是感情好吟秩,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绽淘,像睡著了一般涵防。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沪铭,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天壮池,我揣著相機(jī)與錄音偏瓤,去河邊找鬼。 笑死椰憋,一個(gè)胖子當(dāng)著我的面吹牛厅克,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播橙依,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼证舟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了窗骑?” 一聲冷哼從身側(cè)響起女责,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎创译,沒想到半個(gè)月后抵知,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昔榴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碘橘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片互订。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖痘拆,靈堂內(nèi)的尸體忽然破棺而出仰禽,到底是詐尸還是另有隱情,我是刑警寧澤纺蛆,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布吐葵,位于F島的核電站,受9級(jí)特大地震影響桥氏,放射性物質(zhì)發(fā)生泄漏温峭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一字支、第九天 我趴在偏房一處隱蔽的房頂上張望凤藏。 院中可真熱鬧,春花似錦堕伪、人聲如沸揖庄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹄梢。三九已至,卻和暖如春富俄,著一層夾襖步出監(jiān)牢的瞬間禁炒,已是汗流浹背而咆。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留齐苛,地道東北人翘盖。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像凹蜂,于是被迫代替她去往敵國和親馍驯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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