問題提出:
var str = 'hello world'
str instanceof string // false
var str1 = new string('hello world')
str1 instanceof string // true
問題解決:
class primitivestring
}console.log('hello world' instanceof primitivestring) // true
問題解析:
1、static定義的是類的靜態方法,使用instanceof時會預設呼叫
2、當同時定義靜態方法和動態方法時:
class myclass
static [symbol.hasinstance](obj)
}var x = new myclass()
console.log([1, 2, 3] instanceof new myclass()); // true //我是呼叫的動態方法
console.log(x[symbol.hasinstance]([0, 0, 0,]));//true //我是呼叫的動態方法
console.log(2 instanceof myclass); //true 我是呼叫靜態方法
console.log(myclass[symbol.hasinstance](2));//true 我是呼叫了靜態方法
console.log(x instanceof myclass); //false 因為修改了靜態方法。x本身就是myclass的例項,如果注釋了靜態方法就會返回true。
js學習筆記
js開發中需要注意的問題。1 for迴圈優化 將for var i 0 i elements.length i 改為for var i 0,j elements.length i j i 採用這樣的方式可以避免每次迴圈的時候計算 elsments 的長度。2 字串拼接優化 將var text the...
js學習筆記
一.document物件 物件集合 all 對文件所有html元素的訪問 anchors 返回所有anchor物件引用 forms 返回所有form物件引用 images 返回所有image物件引用 links 返回所有area和link物件引用 物件屬性 body 訪問body元素 cookie ...
js學習筆記
基於json格式的協議的一些技巧備忘。這個msg1就是乙個協議,由於json格式符號太多,為了減少大量無用符號的傳播,目前能想到的就是如上的寫法,乙個匿名物件,由協議號加上陣列組成。獲取這個msg1 var d1 way 1 for var i in d1 cc.log i way 2 var ke...