在未知的js函数问题中使用参数的方法

时间:2015-07-07 14:24:56

标签: javascript jquery

我试图保护我的js代码的一部分用我的代码包含未知函数。

我已编辑我的功能以更改

function banana(url) {}

到方法

banana: function(url){ },

当我尝试在另一个函数中调用我的函数banana时,我尝试使用

this.banana(url);

但我有这个错误:

TypeError: this.banana is not a function

完整代码:

(function (){
  var url_test = "./add_user.php?opt=get_user&token=<?php echo $token; ?>";
  if (typeof $.customfnc == 'undefined')
     $.customfnc = {}

  $.customfnc.get = {
      setup: function (){
        var url = "google.ca";
        this.banana(url);
      },
      banana: function (url){
         console.log("my url: " + url);
      };
   };
 };

  // on ready render data
  $(document).ready(function() {
    $.customfnc.get.setup();
  });
})(jQuery);

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这里的问题是'this'的范围并不完全是你想象的那样。

我过去处理这个特定问题的方法是添加

var self = this; 

在试图自我引用的对象之外。这可能会影响您设置.get()对象的方式。

$.customfnc.get = function(){
    var self = this; 
    self.setup = function (){
        //....
       self.banana(URL)
    }
    self.banana = function(url){
         //...
    }
}