js原型與閉包 讀書筆記

2021-07-31 22:03:41 字數 1361 閱讀 6509

個人備忘而已。。。。

值型別的型別判斷用typeof,引用型別的型別判斷用instanceof。

一切(引用型別)都是物件,物件是屬性的集合。

物件都是通過函式建立的。

instanceof 運算子用來檢測 constructor.prototype 是否存在於引數 object 的原型鏈上。

instanceof運算子的第乙個變數是乙個物件,暫時稱為a;第二個變數一般是乙個函式,暫時稱為b。

instanceof的判斷隊則是:沿著a的__proto__這條線來找,同時沿著b的prototype這條線來找,如果兩條線能找到同乙個引用,即同乙個物件,那麼就返回true。如果找到終點還未重合,則返回false。

var fn = function () ;

console.log(fn instanceof object); // true

每個函式都有乙個屬性叫做prototype。

這個prototype的屬性值是乙個物件(屬性的集合),預設的只有乙個叫做constructor的屬性,指向這個函式本身.

function fn() 

fn.prototype.name = '王福朋';

fn.prototype.getyear = function () ;

var fn = new fn();

console.log(fn.name);

console.log(fn.getyear());

fn是乙個函式,fn物件是從fn函式new出來的,這樣fn物件就可以呼叫fn.prototype中的屬性。

因為每個物件都有乙個隱藏的屬性——「__proto__」,這個屬性引用了建立這個物件的函式的prototype。即:fn.__proto__ === fn.prototype

這裡的"__proto__"成為「隱式原型」。

object.prototype確實乙個特例——它的__proto__指向的是null

函式也是被建立出來的。誰建立了函式呢?——function

物件的__proto__指向的是建立它的函式的prototype,就會出現:object.__proto__ === function.prototype

function也是乙個函式,函式是一種物件,也有__proto__屬性。既然是函式,那麼它一定是被function建立。所以——function是被自身建立的。所以它的__proto__指向了自身的prototype

未完。。。。先去深入研究上圖

js 閉包 原型

引用 在乙個專案中大量使用js,工程專案與 開發有一些不一樣,在我接觸的工程專案中普遍使用js 不夠多,大部分客戶端可做事,交給了服務端,而且在使用js時不夠規範,很容易造成 難以閱讀 記憶體洩漏問題,不注意js 輸寫方式。而在 開發中 尤其一些大 js輸出的非常漂亮 完美無論使用jquery,還是...

JS筆記 閉包

js中變數是function級作用域,也就是說,在function中定義的變數可以再function內部 包括內部定義的巢狀function中 使用,而在function外部無法使用,但是,js中,函式就是一塊儲存了現有資料的記憶體,是要找到這塊記憶體就可以進行呼叫。因此,如果想辦法獲取到內部的巢狀...

js12 閉包,原型,繼承

var cat function return function this.setage function age alert new cat add 1,2 3,new的時候函式會執行一次 alert newcat age 12 new cat setage 100 alert new cat a...