node.js原型定义函数中可访问的私有变量
Private variable accessible in node.js prototype-defined function?
考虑以下代码片段:
function C1() {
// private variable in the constructor
a = 1;
}
C1.prototype.f1 = function() {
console.log( "a=" + a );
}
C1.prototype.f2 = function() {
a = 2;
process.nextTick( this.f1 );
}
o = new C1();
o.f1();
o.f2();
观察到的输出为:
a=1
a=2
我认为私有变量在Constructor函数之外是不可访问的?
在JavaScript中,不使用"var"关键字声明的变量具有全局作用域。在浏览器中,这是通过将变量附加到窗口对象来实现的(不确定它在节点中的工作方式)。如果您想要对象可访问的私有变量,请尝试在对象构造函数和原型声明周围使用闭包。
相关文章:
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 查询后websql成功回调无法访问变量
- 无法访问变量
- 从ajax调用成功内部访问变量
- 从子弹出子窗口访问变量
- 下划线模板无法访问变量
- Meteor Iron路由器通过[data]vs[params]访问变量
- CanvasJS-访问变量-访问属性toString的权限被拒绝
- 如何从嵌套函数中访问变量
- 在<%%中定义的访问变量>从<脚本></脚本>
- 自提交表单访问变量javascript
- 如何访问变量
- 稍后在链中访问变量
- 在 Javascript 中访问变量
- 在方法调用对象之外访问变量而不使它们全局化(可能吗?
- 如何从函数/实例外部访问变量
- 从另一个脚本源访问变量
- Meteor:跨所有 Meteor.method的访问变量
- 每次加载页面时,火狐附加组件访问变量
- 在另一个函数中访问变量,返回未定义的 - JavaScript