以下是一个使用公共和私有方法(fiddle:
http://jsfiddle.net/gY4mh/)的简单Javascript类的示例.
- function Example() {
- function privateFunction() {
- // "this" is window when called.
- console.log(this);
- }
- this.publicFunction = function() {
- privateFunction();
- }
- }
- ex = new Example;
- ex.publicFunction();
从public调用私有函数会导致“this”作为窗口对象.我应该如何确保我的私有方法与类上下文而不是窗口一起调用?这是不可取的吗?
@R_404_323@
使用封闭.基本上任何在函数中声明的变量,仍然可用于该函数内的函数:
- var Example = (function() {
- function Example() {
- var self = this; // variable in function Example
- function privateFunction() {
- // The variable self is available to this function even after Example returns.
- console.log(self);
- }
- self.publicFunction = function() {
- privateFunction();
- }
- }
- return Example;
- })();
- ex = new Example;
- ex.publicFunction();