在 Coffeescript 中测试班级成员资格的最简单方法是什么?

发布于 2024-11-06 05:12:37 字数 128 浏览 1 评论 0原文

我正在寻找 Objective-C 的 [@"blah" isKindOfClass:[NSString class]] 的 Ruby 的 "blah".is_a?(String) 的等效项

I'm looking for an equivalent of Ruby's "blah".is_a?(String) of Objective-C's [@"blah" isKindOfClass:[NSString class]]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

醉殇 2024-11-13 05:12:37

您想测试一个对象是否是特定类的后代吗?然后您需要 instanceof 关键字。 (这不是 CoffeeScript 添加的东西;它是 JavaScript 的一部分。)CoffeeScript 类的设置是这样的,如果您编写,

class A
class B extends A
class C extends B

则以下内容为 true:

(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

此外,任何对象都会为 instanceof 返回 true对象

如果您想测试对象作为实例的特定类,请使用.constructor。例如,

(new B).constructor is B

或者如果您想使用字符串,

(new B).constructor.name is 'B'

Do you want to test whether an object is descended from a particular class? Then you want the instanceof keyword. (It's not something added by CoffeeScript; it's a part of JavaScript.) CoffeeScript classes are set up so that if you write

class A
class B extends A
class C extends B

then the following is true:

(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

Also, any object will return true for instanceof Object.

If you want to test the specific class that an object is an instance of, use .constructor. For instance,

(new B).constructor is B

or if you'd like to use a string,

(new B).constructor.name is 'B'
滴情不沾 2024-11-13 05:12:37

我觉得创建一个类的实例是错误的。你永远不知道构造函数可能需要什么参数。

所以我想出的是这样的:

class A
class B extends A

console.log B.__super__ is A.prototype# => true

It feels wrong for me to create an instance of a class. You never know, what parameters the constructor might expect.

So what I came up with is this:

class A
class B extends A

console.log B.__super__ is A.prototype# => true
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文