tutorial - ¿Cuál es la forma más fácil de probar la membresía de clase en coffeescript?
coffeescript wikipedia (2)
Estoy buscando un equivalente de "blah".is_a?(String)
de Ruby de [@"blah" isKindOfClass:[NSString class]]
¿Quieres probar si un objeto desciende de una clase en particular? Entonces quieres la palabra clave instanceof
. (No es algo agregado por CoffeeScript; es parte de JavaScript.) Las clases de CoffeeScript se configuran de manera que si escribes
class A
class B extends A
class C extends B
entonces lo siguiente es cierto:
(new A) instanceof A
(new B) instanceof B and (new B) instanceof A
(new C) instanceof C and (new C) instanceof B and (new C) instanceof A
Además, cualquier objeto devolverá true
para instanceof Object
.
Si desea probar la clase específica de la que un objeto es una instancia, use .constructor
. Por ejemplo,
(new B).constructor is B
o si quieres usar una cuerda,
(new B).constructor.name is ''B''
Me parece mal crear una instancia de una clase. Nunca se sabe qué parámetros puede esperar el constructor.
Así que lo que se me ocurrió es esto:
class A
class B extends A
console.log B.__super__ is A.prototype# => true