从 JavaScript 中的私有函数访问 public 函数
Access public function from private function in JavaScript
我最近开始使用 Java 脚本中的 OOP
。而且,我对这些事情感到很困惑。我知道 JavaScript 与 Java 完全不同。但这引起了问题。
我要实现的是:
function myClass() {
//Declare private variable
var privateVar = '';
//To act as constructor
privateFunction('Hello');
//Getter
this.publicFunctionGet = function() {
return privateVar;
}
//Setter
this.publicFunctionSet = function(x) {
privateVar = x;
}
function privateFunction(x) {
this.publicFunctionSet(x);
}
}
//Create object of myClass
var me = new myClass();
alert(me.publicFunctionGet());
这是一个错误,上面写着:
Uncaught TypeError: undefined is not a function
对于
function privateFunction(x) {
this.publicFunctionSet(x);
}
我该怎么办?如何实现这部分。?我对 JavaScript 类.?
有什么误解吗
查看this答案。
您将 public 函数包装在一个对象文字中,然后 return 它。因此,您可以在对象字面量函数中调用私有函数。
您应该阅读有关提升以及声明函数和函数表达式之间的区别的信息。
您的代码不起作用,因为 js 知道声明了 var publicFunctionSet(函数表达式),但在声明 privateFunction(x) 时它不是函数。
PS。 @Akash Pradhan 的回答将解决你的问题,但我想你仍然应该检查背景并理解为什么它没有按照你尝试的方式工作:)
我最近开始使用 Java 脚本中的 OOP
。而且,我对这些事情感到很困惑。我知道 JavaScript 与 Java 完全不同。但这引起了问题。
我要实现的是:
function myClass() {
//Declare private variable
var privateVar = '';
//To act as constructor
privateFunction('Hello');
//Getter
this.publicFunctionGet = function() {
return privateVar;
}
//Setter
this.publicFunctionSet = function(x) {
privateVar = x;
}
function privateFunction(x) {
this.publicFunctionSet(x);
}
}
//Create object of myClass
var me = new myClass();
alert(me.publicFunctionGet());
这是一个错误,上面写着:
Uncaught TypeError: undefined is not a function
对于
function privateFunction(x) {
this.publicFunctionSet(x);
}
我该怎么办?如何实现这部分。?我对 JavaScript 类.?
有什么误解吗查看this答案。
您将 public 函数包装在一个对象文字中,然后 return 它。因此,您可以在对象字面量函数中调用私有函数。
您应该阅读有关提升以及声明函数和函数表达式之间的区别的信息。
您的代码不起作用,因为 js 知道声明了 var publicFunctionSet(函数表达式),但在声明 privateFunction(x) 时它不是函数。
PS。 @Akash Pradhan 的回答将解决你的问题,但我想你仍然应该检查背景并理解为什么它没有按照你尝试的方式工作:)