個人備忘而已。。。。
值型別的型別判斷用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...