JavaScript继承对变量的函数(OpenERP)

前端之家收集整理的这篇文章主要介绍了JavaScript继承对变量的函数(OpenERP)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上我试图通过扩展来覆盖一个函数.我有以下基本(简化)代码
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;
        }
    })
}

猜你在找的JavaScript相关文章