Questions tagged «private-methods»

30
JavaScript私有方法
要使用公共方法创建JavaScript类,我需要执行以下操作: function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here } Restaurant.prototype.use_restroom = function(){ // something here } 这样,我班的用户可以: var restaurant = new Restaurant(); restaurant.buy_food(); restaurant.use_restroom(); 如何创建可以由buy_food和use_restroom方法调用但不能由类用户在外部调用的私有方法? 换句话说,我希望我的方法实现能够做到: Restaurant.prototype.use_restroom = function() { this.private_stuff(); } 但这不起作用: var r = new Restaurant(); r.private_stuff(); 如何将其定义private_stuff为私有方法,使两者都适用? 我已经读过Doug Crockford的文章几次,但似乎公共方法不能调用“私有”方法,而外部可以调用“特权”方法。

11
如何使用反射调用私有方法?
我的课程中有一组私有方法,我需要根据输入值动态调用一个。调用代码和目标方法都在同一实例中。代码如下: MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType); dynMethod.Invoke(this, new object[] { methodParams }); 在这种情况下,GetMethod()将不会返回私有方法。BindingFlags我需要提供什么GetMethod()以便它可以定位私有方法?

11
当非const方法是私有方法时,为什么不调用public const方法?
考虑以下代码: struct A { void foo() const { std::cout << "const" << std::endl; } private: void foo() { std::cout << "non - const" << std::endl; } }; int main() { A a; a.foo(); } 编译器错误是: 错误:“ void A :: foo()”是私有的。 但是,当我删除私有文件时,它就可以工作。当非const方法为私有方法时,为什么不调用public const方法? 换句话说,为什么在访问控制之前要进行重载解析?这很奇怪。您认为这是一致的吗?我的代码可以工作,然后添加一个方法,而我的工作代码根本无法编译。

9
Ruby中的私有模块方法
我有一个两部分的问题 最佳实践 我有一个使用公用接口对数据结构执行某些操作的算法 当前,它是具有许多静态方法的模块,除了一个公共接口方法外,所有方法都是私有的。 所有方法之间都需要共享一个实例变量。 这些是我可以看到的选项,哪个是最好的?: 模块与静态(红宝石“模块”)的方法 带有静态方法的类 Mixin模块,用于包含在数据结构中 重构算法中修改该数据结构的部分(非常小),并使之混合,从而调用算法模块的静态方法 技术部分 有什么方法可以使私有Module方法吗? module Thing def self.pub; puts "Public method"; end private def self.priv; puts "Private method"; end end 将private在那里似乎没有任何效果,我仍然可以调用Thing.priv没有问题。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.