我试图保护我的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);
感谢您的帮助!
答案 0 :(得分:0)
这里的问题是'this'的范围并不完全是你想象的那样。
我过去处理这个特定问题的方法是添加
var self = this;
在试图自我引用的对象之外。这可能会影响您设置.get()对象的方式。
$.customfnc.get = function(){
var self = this;
self.setup = function (){
//....
self.banana(URL)
}
self.banana = function(url){
//...
}
}