问题标签 [instance-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
70 浏览

ruby - 模块中的标记方法以供混合类参考

我有一个模块M,我想将特定方法标记为“特殊”,这样混合在该模块中的类可以检查给定的方法名称是否特殊。这是我尝试过的:

当然这不起作用,因为我不能从类方法中调用实例方法self.special。我怀疑如果我想保持能够调用special :<name>模块中所需方法的功能,我别无选择,只能使用类变量(例如@@specials)有人可以证明我错了吗?

0 投票
7 回答
10046 浏览

java - 不能对非静态方法进行静态引用?

所以,简而言之。我有两节课。

它不断抛出错误“无法对非静态方法 gameStart() 进行静态引用”。我确定我错过了一些简单的东西,但找不到。谢谢!

0 投票
5 回答
10841 浏览

ruby-on-rails - 在不实例化类的情况下调用 ruby​​ 方法

如果我在 Rails 活动模型方法上调用一个方法,如下所示:

我会取回第一个活动记录。我不必实例化该类。

但是如果我创建自己的类并调用一个方法,我会得到一个异常:

我怎样才能让这个问题消失?

0 投票
2 回答
2871 浏览

ruby - Ruby Unbound Methods:是否可以强制绑定到其他类的实例?

我想知道我是否可以强迫这种情况发生

目前它抛出错误 TypeError: bind argument must be an instance of A

我发现这对于我可以用这些未绑定的方法做什么非常有限,可能性有点限制。在这样的情况下(而且我不仅仅指幂等函数),它会有意义吗?并且执行错误就足够了,如果我要处理 A 中未在 B 中复制的变量。我真的很想知道如何强制这种绑定。

0 投票
1 回答
769 浏览

ios - 需要时未调用 iOS 委托方法

我有一个用于我的应用程序的自定义数据控制器,并且在其中我设置了一些委托方法。它们都可以工作,但在我想要它们的时候却不行。当我调用 [dataController refreshData] 时,我有一个委托方法 refreshDidStart 和 refreshDidFinishWithoutError。我分配数据控制器,将委托设置为 self 并在 applicationDidFinishLaunching 中调用 refreshData,但是当方法执行完成时,委托方法不会刷新视图控制器中的表视图。但是,当我设置刷新 UIBarButtonItem 来调用 [dataController refreshData] 时,会调用 refreshDidFinish 委托方法并执行预期的操作。我相信这与我正在使用的拆分视图控制器有关。下面是代码:

应用代表:

主视图控制器:

0 投票
2 回答
924 浏览

objective-c - Objective C 委托和类方法与实例方法

在以下链接中有一个类似的问题, 但它并没有完全回答我的问题。

我正在为 Facebook 设置一个助手类(遵循委托模式)。类方法之一的示例是:

此方法调用 FacebookopenActiveSessionWithReadPermissions方法,该方法需要一个 completionHandler 块。在块中调用委托方法是否有意义,sessionStateChanged如下所示?

或者最好使用 Facebook 帮助程序类的实例方法并[self.delegate sessionStateChanged]在 completionHandler 块中调用委托。

0 投票
1 回答
560 浏览

ruby - Ruby:实例方法的命名空间

我有很多实例方法,它们都共享相同的实例变量。由于这个类变得很大,我将这些方法分成大约 50 个模块。然后剩下的课程包括所有这 50 个模块。

我最终得到了一个令人难以置信的丑陋代码,其中充满了诸如“module_name_method_name”之类的实例方法,以避免方法名称的冲突。问题是每个模块可能具有相似(相似,不同)的功能(进而相似的方法名称)。

我当前的代码如下所示:

模块:

.... 大约 50 个这样的模块

我怎样才能更好地设计我的代码?最重要的是所有实例方法都需要共享相同的实例变量……或者至少以某种方式可以访问相同的数据!

编辑:我自己想出了这个:

事实上,它解决了丑陋的方法名称问题,但现在我正在处理新问题:变量 @foo 可能非常大,它会将自身复制 50 次(或更多)到内存中(因为我有 50 个这样的类)。

还有其他解决方案吗?

0 投票
3 回答
4366 浏览

python - 实例方法上的 Python 装饰器

有人知道这段代码有什么问题吗?

我收到以下错误:

我认为这会起作用的原因是,通过反复试验,我得到了以下装饰器,就像类方法的魅力一样:

0 投票
1 回答
252 浏览

python - 适用于类方法和实例方法的装饰器

我有两个装饰器,定义如下,它们都做同样的事情:

我有两个的原因是因为对于类方法我需要将第一个 arg 作为 cls=cls 传递,例如方法我需要传递 self=self。但这显然并不理想。有谁知道构造一个适用于实例方法和类方法的装饰器的方法?

0 投票
2 回答
1073 浏览

node.js - mongoose 实例方法在正确排序方法定义和模式命名后未定义

我在似乎无法访问的模式上定义了一个实例方法。在我详细介绍之前,我会说我已经阅读了[this question](Mongoose instance method is undefined),它有同样的问题,但我的根本原因肯定是不同的。在将模型连接到其名称之前,我定义了所有实例方法。

首先我定义了一个模式,然后定义了一个实例方法: AccountSchema.methods.addFunds = function(amountToAd, callback) { // 做一些事情来添加资金 return callback(); }

在该文件的底部,我将名称与架构相关联: var exports = module.exports = Account = mongoose.model('Account', AccountSchema);

作为记录,在关联架构和名称之前,我检查以确保 AccountSchema.methods 具有我的实例方法。

后来,我使用 Account.findOne 来获取一个帐户的实例:

我包括上面的代码片段,因为它看起来就像我从我的数据库中获取帐户时,它不再有任何实例方法。

最后,当我尝试调用 doc.addFunds 时,我得到:

我将不胜感激任何帮助或指向使用实例方法的完全完整的猫鼬模式定义的链接。