instanceof
最初遇到JavaScript时,该关键字可能会造成很大的混乱,因为人们倾向于认为JavaScript不是一种面向对象的编程语言。
- 它是什么?
- 它解决什么问题?
- 什么时候合适,什么时候不合适?
"foo" instanceof String
=>假,1 instanceof Number
=>假,{} instanceof Object
=>假。说什么?!
"foo" instanceof String => false
是正确的,因为typeof "foo" == 'string'
。new String("foo") instanceof String => true
,因为typeof String == 'function'
-您应该将函数视为类(类的定义)。将其分配为时,变量变为instanceof
某些function
(类)var v = new AnythingWhatTypeofEqualsFunction()
。同样适用于1
。typeof 1 == 'number'
- “号”是不是“功能” :)其次- {} instanceof Object
是TRUE
在节点和现代浏览器
({}) instanceof Object
将返回true
。实际上,您编写的代码会给您一个错误。