在 javascript 中使用私有成员和方法
Using private members and methods in javascript
var test = function(id, company){
//public members
this.id = id;
this.company = company;
//private member
var age = 24;
//private method
var getAge = function(){
return this.age;
};
//public method
this.displayAge = function(){
console.log(getAge());
}
}
//invoking
var t = new test(1, 'XYZ Corp');
t.displayAge(); //undefined
为什么它没有显示
它没有显示,因为它未定义this.age
。 你想要age
.
因为 js 中变量的作用域
变量在函数内部可见,在函数外部可见
var a = "foo"
function fooBar () {
var b = "bar"
console.log(a) // foo
console.log(b) // bar
}
console.log(a) // foo
console.log(b) // undefined
你想要这个:
var test = function(id, company){
//public members
this.id = id;
this.company = company;
//private member
var age = 24;
//private method
this.getAge = function(){
return age;
};
//public method
this.displayAge = function(){
console.log(this.getAge());
}
}
//invoking
var t = new test(1, 'XYZ Corp');
t.displayAge(); //undefined
请注意,"getAge"和"displayAge"都需要附加到this
但您的私有变量"age">不应该附加到。
相关文章:
- 为什么可以't我使用成员方法初始化一个实例
- 如何访问对象's成员通过另一种方法填充的方法
- 在 javascript 中使用私有成员和方法
- 在setTimeout中执行jQuery成员函数而不关闭的方法
- 类的方法 - 静态成员
- 在 Javascript 中访问私有成员的公共方法
- 使用 Javascript 命名空间/singleton 将不接受传递给成员方法的参数
- 为什么我可以更新 JavaScript 方法的(公共)成员
- 推荐在 javascript 模块中限定私有成员范围的方法
- 对于类实例的私有成员,是否有更优雅的方法
- 无法通过公共方法访问javascript私有成员
- javascript中的闭包与c++中的类实例(它有一个私有成员和一个公共方法)相当吗
- 在面向对象的Javascript中,将对象成员方法传递给事件处理程序
- 在Javascript中调用不带传递函数的组合私有类成员的公共实例方法
- 在JS中将对象数组中的对象成员值提取到它们自己的数组中的干净方法
- 将类中HTMLElement成员的onclick属性设置为同一类的方法
- 在JavaScript的成员方法中缩短对象名称
- 在JavaScript中实现实例成员/方法
- 从异步调用访问成员方法
- 原型编程- Javascript错误:这个.如果窗体未定义,则无法在成员方法中获取对象变量