如何在JavaScript中访问继承方法内部的私有属性
How to access private attributes inside an inherited method in JavaScript
我正在尝试调用一个继承的方法,该方法必须访问当前对象的私有属性。但它只访问公共的,这有什么错?
我的测试代码应该提醒两个变量:
function ParentClass(){
//Priviliged method to show just attributes
this.priviligedMethod = function(){
for( var attr in this ){
if( typeof(this[ attr ]) !== 'function' ){
alert("Attribute: " + this[ attr ]);
}
}
};
}
function ChildClass(){
// Call the parent constructor
ParentClass.call(this);
var privateVar = "PRIVATE VAR";
this.publicVAR = "PUBLIC VAR";
}
// inherit from parent class
ChildClass.prototype = new ParentClass();
// correct the constructor pointer because it points to parent class
ChildClass.prototype.constructor = ChildClass;
var objChild = new ChildClass();
objChild.priviligedMethod();
jsfiddle版本:http://jsfiddle.net/gws5s/6/
提前感谢,Arthur
没有任何问题。当您使用var
关键字时,javascript会将该变量限制在当前定义的范围内。
所以:
var privateVar = "PRIVATE VAR";
将仅从定义的块内部可见,即ChildClass()
查看本文以获得更深入的解释。
相关文章:
- Javascript:循环属性内部的条件递增或递减
- javascript正则表达式,用于编辑元素内部的css样式属性
- 通过 Jquery 调用 tr 属性并找到我的内部复选框
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- 为什么我不能在变量上使用内部HTML属性
- 如何从类函数内部访问对象属性
- 如何在firebase中通过内部属性进行过滤
- 为什么可以在内部函数成员中访问对象引用,而不能在内部属性成员中访问
- 如果我们使用:运算符在函数内部定义一个属性,会发生什么
- Javascript:如何通过其参数选择函数内部属性
- ECMAScript 中的内部属性定义是为了什么
- AngularJS 2 - 内部属性数据绑定 - 异常:类型错误:无法读取未定义的属性
- 访问内部属性名称以计算 ES6 中的新属性
- 如何剥离除<a></a><img>(内部属性)和<br>使用javascrip
- 如何在jqueryui小部件中存储内部属性
- 无法读取未定义的HTML内部属性
- 我应该在原型中添加内部属性吗?
- 从主窗口访问iframe内部属性
- 如何在JavaScript中找到具有另一个对象内部属性的对象
- 在 Javascript 中使用其范围之外的函数更新函数的内部属性