在js中的原型如何添加函数?

目前封装的表格插件形式如下:

(function ($) {

    function Table() {

        this.config = {
           //默然参数
        }

    };

    Table.prototype = {
       //原型中的table方法
        rend: function (config) {

            return this;
        }
    };

    window.Table = Table;

}(jQuery));

插件调用方式:

var abc = new Table();
abc.rend({
    ele:'#table1'
});

问题:有一些属于rend自定义的函数我想写入HyTable.prototype的rend中,但是这样会造成闭包吗?如果定义的函数多了会造成内存泄漏吗?或者有更好的方法吗?

阅读 3.2k
4 个回答

1、不会生成闭包,具体的可以看闭包的定义
2、内存泄漏和数据有没有被释放有关,如果你只是用完就算了,没有在别的地方引用,那么不会造成内存泄漏
3、如果你要定义很多函数,那么都放在rend里,会影响代码的可阅读性,可以把函数定义在Table.prototype上

完全没有问题,经常在方法内部定义一些只有该方法内部使用的方法,即便只是为了代码的可读性也是需要的。

Table.prototype = {
    render:function(config){
        function a(){}
        
        function b(){}
        
        ......
    }

}
Table.prototype.addFunc = function(){}

这样写完全OK啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题