在Javascript中确保“这个”上下文的最佳做法是什么?

前端之家收集整理的这篇文章主要介绍了在Javascript中确保“这个”上下文的最佳做法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下是一个使用公共和私有方法(fiddle: http://jsfiddle.net/gY4mh/)的简单Javascript类的示例.
  1. function Example() {
  2. function privateFunction() {
  3. // "this" is window when called.
  4. console.log(this);
  5. }
  6.  
  7. this.publicFunction = function() {
  8. privateFunction();
  9. }
  10. }
  11.  
  12. ex = new Example;
  13. ex.publicFunction();

从public调用私有函数会导致“this”作为窗口对象.我应该如何确保我的私有方法与类上下文而不是窗口一起调用?这是不可取的吗?

@R_404_323@

使用封闭.基本上任何在函数中声明的变量,仍然可用于该函数内的函数
  1. var Example = (function() {
  2. function Example() {
  3. var self = this; // variable in function Example
  4. function privateFunction() {
  5. // The variable self is available to this function even after Example returns.
  6. console.log(self);
  7. }
  8.  
  9. self.publicFunction = function() {
  10. privateFunction();
  11. }
  12. }
  13.  
  14. return Example;
  15. })();
  16.  
  17. ex = new Example;
  18. ex.publicFunction();

猜你在找的JavaScript相关文章