问题标签 [private-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 投票
34 回答
413486 浏览

javascript - JavaScript 私有方法

要使用公共方法创建 JavaScript 类,我会执行以下操作:

这样我班的用户可以:

如何创建可以由buy_foodanduse_restroom方法调用但不能由类的用户在外部调用的私有方法?

换句话说,我希望我的方法实现能够做到:

但这不应该工作:

我如何定义private_stuff为私有方法,以便这两个都成立?

我已经阅读了Doug Crockford 的文章几次,但似乎“私有”方法不能被公共方法调用,而“特权”方法可以在外部调用。

0 投票
11 回答
195006 浏览

c# - 如何使用反射来调用私有方法?

我的类中有一组私有方法,我需要根据输入值动态调用一个。调用代码和目标方法都在同一个实例中。代码如下所示:

在这种情况下,GetMethod()不会返回私有方法。BindingFlags我需要提供什么GetMethod()才能找到私有方法?

0 投票
10 回答
91426 浏览

ruby - Ruby 中的私有模块方法

我有一个两部分的问题

最佳实践

  • 我有一个算法,它使用公共接口对数据结构执行一些操作
  • 它目前是一个具有许多静态方法的模块,除了一个公共接口方法外,都是私有的。
  • 有一个实例变量需要在所有方法之间共享。

这些是我可以看到的选项,哪个是最好的?:

  • 具有静态(ruby 中的“模块”)方法的模块
  • 具有静态方法的
  • 用于包含在数据结构中的Mixin模块
  • 重构修改该数据结构(非常小)的算法部分,并使其成为调用算法模块的静态方法的混合

技术部分

有什么方法可以制作私有 Module 方法吗?

private那里似乎没有任何效果,我仍然可以Thing.priv毫无问题地打电话。

0 投票
13 回答
50187 浏览

c# - 私有方法命名约定

是否有命名我在_Add这里称为“”的私有方法的约定?我不喜欢领先的下划线,但这是我的一位队友所建议的。

0 投票
6 回答
13545 浏览

c# - 在 C# 中命名私有和静态私有方法的最佳实践是什么?

我试图弄清楚在 C# 中命名私有方法和私有静态方法的最聪明的方法是什么。

背景:我知道私人成员的最佳实践是下划线前缀+驼峰式。你可以和我争论,但相信我,我已经看到了足够多的遵循这个约定的核心专业人士的代码,这是熟练的行业标准。

我也知道帕斯卡案例是公共方法的行业标准。但是我已经看到了测试风格命名(即 method_must_return_false_occasionalally )与 pascal case、camelcase 和下划线前缀 + camelcase 的组合,用于私有和私有静态方法。

但是 C# 中私有和私有静态方法命名的最佳实践风格是什么?

如果某些样式是从某些私有方法而不是其他方法中使用的,我可以理解,只需解释一下。

谢谢阅读。

0 投票
3 回答
16484 浏览

ruby-on-rails - 错误:尝试调用私有方法

来自 C 风格语法的悠久历史,现在正在尝试学习 Ruby(在 Rails 上),我一直在其习语等方面遇到问题,但今天我遇到了一个我没想到会遇到问题的问题并且我看不到必须在我面前的任何东西。

我有一个 Binary 类,它包含一个从路径值派生 URI 值的私有方法(uri 和路径是类的属性)。我self.get_uri_from_path()从内部打电话Binary.upload(),但我得到:

模型的片段如下所示:

我打错电话了吗?我是否错过了其他更基本的东西?唯一Binary.get_uri_from_path()被调用的地方——目前——是Binary.upload()。我希望能够从同一个类中调用私有方法,除非 Ruby 所做的事情与我使用的其他语言明显不同。

谢谢。

0 投票
4 回答
4505 浏览

perl - 如何在面向对象的 Perl 中定义私有或内部方法?

我正在使用 Damian Conway 的“由内而外”的对象,正如他在他的精彩著作Perl Best Practices中所描述的那样,为我的客户的安全系统构建面向对象的接口。我遇到了在我通常指定为“_some_method”的模块中使用内部辅助方法的需要。但是,这似乎破坏了封装,因为它们可以通过包名直接调用。有没有办法让这些方法真正私有化?举个例子,

显然我不希望 _some_method 的直接调用成功。有没有办法保证这一点?

0 投票
10 回答
83895 浏览

java - 覆盖Java中的私有方法

正如这里简洁描述的那样,在 Java 中重写私有方法是无效的,因为父类的私有方法是“自动最终的,并且对派生类隐藏”。我的问题主要是学术性的。

不允许父类的私有方法被“覆盖”(即,在子类中独立实现,具有相同的签名)如何不违反封装?父类的私有方法不能被子类访问或继承,符合封装原则。它是隐藏的。

那么,为什么要限制子类实现具有相同名称/签名的自己的方法呢?这是否有良好的理论基础,或者这只是某种务实的解决方案?其他语言(C++ 或 C#)对此有不同的规则吗?

0 投票
11 回答
5376 浏览

c# - C# 私有成员可见性

我们的商业模式中有一个学生课程。有件事让我觉得很奇怪,如果我们从另一个学生中操纵一个学生,学生的私人成员是可见的,这是为什么呢?

我可以对此的设计考虑/影响有一些想法吗?看来您无法向您的兄弟姐妹隐瞒信息。有没有办法将字段或成员标记为对同一类的其他实例隐藏?

0 投票
3 回答
2279 浏览

ruby-on-rails - Rails 控制器私有方法的功能测试

我的控制器中有一个私有方法。用于某些数据库更新。我从另一个控制器方法调用此方法。它工作正常。

但是,当我尝试为该方法编写测试用例时,它在我的功能中访问(会话变量和参数)时绊倒了所有其他方法都工作正常问题仅与私有方法有关吗?

在我的功能测试设置方法中,我也在设置会话。?