我想扩展这个函数并自己创建,这个新函数应该具有与旧函数相同的功能,但是应该用我自己的函数覆盖additionalOkClicked。
我该怎么做?
(function ($) {
$.LocationDialog = {
mainInit: function()
{
//some code here
},
init: function(callingNum)
{
//some code here
},
additionalOkClicked: function()
{
//i want to override this function
}
};
})(jQuery);
答案 0 :(得分:1)
你不能这样做:
$.LocationDialog.myAdditionalOnClick = function()
{
this.additionalOnClick(); //call the other method in the object.
}
如果我们谈论绑定到事件的函数,那么使用:
$('#foo').unbind('click',$.LocationDialog.additionalOnClick);
$('#foo').bind('click',$.LocationDialog.myAdditionalOnClick);
答案 1 :(得分:0)
使用原型:
$.locationDialog.prototype.functionName = function() {
// Your code here
}
或
$.locationDialog.additionalOkClicked.prototype.functionName = function() {
// Code here
}
或者只是在$ .locationDialog:
中创建另一个函数 (function ($) {
$.LocationDialog = {
mainInit: function()
{
//some code here
},
init: function(callingNum)
{
//some code here
},
additionalOkClicked: function()
{
//some code here
}
functionName: function() {
// Your code here
}
};
})(jQuery);
答案 2 :(得分:0)
您只需添加代码即可删除该功能,然后使用相同名称创建自己的代码:
(function ($) {
delete $.LocationDialog.additionalOkClicked;
$.LocationDialog.additionalOkClicked = function () {
// your code here
};
})(jQuery);
$.LocationDialog
对象的其余部分将保持不变。