1 回答

TA貢獻1851條經(jīng)驗 獲得超3個贊
樓主,你可以試一試 你的 instance_of
是代替不了 instanceof
的
首先,明確你的樣本 a 是Number 類型
但是,執(zhí)行結(jié)果如下
instance_of(a, Object) // true
instance_of(a, Number) // true
修改 instance_of 方法:
function instance_of(L, R) {
try {
var O = R.prototype;// 取 R 的顯示原型
L = Object.getPrototypeOf(L);// 取 L 的隱式原型
while (true) {
if (L === null)
return false;
if (O === L)// 這里重點:當 O 嚴格等于 L 時,返回 true
return true;
L = L.Object.getPrototypeOf(L);
}
} catch (e) {
return false
}
}
再次實驗:
var a = 1
instance_of(a, Object) // false
instance_of(a, Number) // true
var parent = function () {}
var child = new parent()
instance_of(child, parent) // true
添加回答
舉報