【发布时间】:2012-07-27 15:24:08
【问题描述】:
如果我有课:
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'
我对@987654326@ 的一个论点是在使用extends 时:
class BigHaha extends Haha
bigHaha = new BigHaha
console.log bigHaha instanceof Haha #true
但作为一名 JavaScript 操作员,它有多安全 - 我觉得我应该对此持怀疑态度。
另一方面,constructor.name 很清楚发生了什么。是否保证所有对象上都会设置constructor.name?
感谢您提供任何信息。
【问题讨论】:
标签: coffeescript