Gar*_*ett 10 javascript prototype parse-platform
我需要修复save
Parse.Object库函数中的错误.但是,当我尝试save
在我的覆盖原型中调用原始函数时,它会递归循环,直到堆栈溢出!
Parse.Object.prototype.save = function (arg1, arg2, arg3) {
fixIncludedParseObjects(this);
Parse.Object.prototype.save.call(this, arg1, arg2, arg3); // endless loop
};
Run Code Online (Sandbox Code Playgroud)
如何更改无限循环线以调用解析所产生的原始函数?
谢谢!
xda*_*azz 22
试试这个:
(function(save) {
Parse.Object.prototype.save = function (arg1, arg2, arg3) {
fixIncludedParseObjects(this);
save.call(this, arg1, arg2, arg3);
};
}(Parse.Object.prototype.save));
Run Code Online (Sandbox Code Playgroud)
Parse.Object.prototype.save = function (save) {
return function () {
fixIncludedParseObjects(this);
//Remember to return and .apply arguments when proxying
return save.apply(this, arguments);
};
}(Parse.Object.prototype.save);
Run Code Online (Sandbox Code Playgroud)
类似于接受的答案,但可能更容易理解
var originalSaveFn = Parse.Object.prototype.save;
Parse.Object.prototype.save = function(arg1, arg2, arg3) {
fixIncludedParseObjects(this);
originalSaveFn.call(this, arg1, arg2, arg3);
};
Run Code Online (Sandbox Code Playgroud)