如果我有一堂课:
class Haha
constructor: (@lolAmount = 1) ->
alert @lolAmount
我想检查一个对象是否属于正确的类,使用是否总是安全的constructor.name
:
haha = new Haha()
unless haha.constructor.name is 'Haha'
throw Error 'Wrong type'
还是更好地使用instanceof
:
haha = new Haha()
unless haha instanceof Haha
throw Error 'Wrong type'
我的一个论点instanceof
是使用时extends
:
class BigHaha extends Haha
bigHaha = new BigHaha
console.log bigHaha instanceof Haha #true
但是,作为一个 JavaScript 操作员,它有多安全——我觉得我应该对此持怀疑态度。
另一方面,constructor.name
很清楚正在发生什么。是否保证constructor.name
将在所有对象上设置?
感谢您提供任何信息。