js語言精粹

2022-01-29 02:05:59 字數 810 閱讀 2752

1、typeof null == 「object」 ,所以不能通過typeof ~ == "object",判斷為物件   ; a、判斷為null的,直接~ === null;b、判斷物件(~ && typeof ~ == "object"),因為null為假

2、prototype和__proto__的概念

prototype是函式的乙個屬性(每個函式都有乙個prototype屬性),這個屬性是乙個指標,指向乙個物件。它是顯示修改物件的原型的屬性。

__proto__是乙個物件擁有的內建屬性(請注意:prototype是函式的內建屬性,__proto__是物件的內建屬性)

var a ={};

a.n = 3

; a.__proto__.n = 4

; console.log(a.n)

3、new 的過程

var person = function(){};

var p = new person();

new的過程拆分成以下三步:

(1) var p={}; 也就是說,初始化乙個物件p

(2) p.__proto__ = person.prototype;

(3) person.call(p); 也就是說構造p,也可以稱之為初始化p

var b =function () 

b.prototype.n =function ()

var c = new

b();

console.log(c.__proto__ === b.prototype)

js語言精粹 繼承

當乙個函式物件被建立時,function構造器產生的函式物件會執行類似這樣的 this.prototype 當採用構造器呼叫模式,即使用new字首去呼叫乙個函式時,這將修改函式執行的方式。如果new運算子是乙個方法而不是乙個運算子,它可能會像這樣執行 function.method new func...

讀js語言精粹收穫

1.js可以根據選擇跳出多層迴圈 在迴圈前加個標籤 label for var i 0 i 2 i 2.typeof運算子產生的值只有 number undefined string boolean es5的基礎資料型別少了乙個null function object 注 array和null結果都...

js語言精粹之值和引用

var a 2 varb a b是a的乙個副本 b a 2b 3 基本資料型別是值複製 varc 1,2,3,4 var d c d是 1,2,3,4 的乙個引用 d.push 5 c 1,2,3,4,5 d 1,2,3,4,5 復合型別是引用複製 c和d分別指向乙個 1,2,3,4 的兩個不同的引...