【发布时间】:2015-10-31 23:14:07
【问题描述】:
我使用什么 JavaScript 模式给了我:
- 原型上的公共方法
- 可以从 #1 调用的私有方法
- 私有变量
在尝试从原型公共方法调用私有方法时,我发现的其他答案似乎返回 undefined。
【问题讨论】:
-
请定义“私有”以及为什么告诉我们您为什么要使用原型。
-
私有方法不在原型上。以及能够在未来某个日期使用派生的子“类”修改类行为的原型。
-
这不是“私有”,这就是我们所说的“特定于实例”或“自己的属性”(它们仍然是公开的)。
-
稍后(从外部)修改类行为基本上需要非私有变量
-
JavaScript 没有私有方法或属性的概念。您可以在构造函数中定义变量和函数,也可以在构造函数中定义方法,从而使“公共”方法可以访问“私有”变量和函数。然而,这些都不涉及原型。在原型上定义的方法不在访问构造函数内定义的变量和函数的范围内。所以你想要的是不可能的。另请注意,您在构造函数中做的越多,实例化的处理就越繁重。
标签: javascript