基本上我试图通过扩展来覆盖一个函数.我有以下基本(简化)代码:
openerp.point_of_sale = function(db) { var Order = Backbone.Model.extend({ exportAsJSON: function() { return {'bigobject'} } }) }
然后,我正在写我自己的.js,我想继承并覆盖exportAsJSON函数,我不知道如何.extend它.这是我错误的做法:
openerp.my_module = function(db) { db.point_of_sale.Order = db.point_of_sale.Order.extend({ exportAsJSON: function() { var order_data = this._super(); //... add more stuff on object return order_data; } }) }
什么是正确的做法?
我希望我提供足够的信息来解答(我正在开发OpenERP).任何帮助将不胜感激.
编辑:
更具体地说,错误似乎在扩展本身:
db.point_of_sale.Order = db.point_of_sale.Order.extend({
…即使我把一个简单的返回0;在我的exportAsJSON函数中,该页面不加载,并在我的浏览器控制台中收到以下错误:
"Cannot call method 'extend' of undefined"
解决方法
我想你想要的东西像SuperClass.prototype.method.call(这):
openerp.my_module = function(db) { db.point_of_sale.Order = db.point_of_sale.Order.extend({ exportAsJSON: function() { var order_data = db.point_of_sale.Order.prototype.exportAsJSON.call(this); //... add more stuff on object return order_data; } }) }