"沙盒" JS对象方法

时间:2017-01-17 09:57:20

标签: javascript jquery

我创建了一个函数来提供一个方法框架,该框架可以应用于现有的HTML元素。它基本上是这样的:

var vd = function(tgt){
    this.init = function(){
        var html_structure = '\
            ...\
        ';
        tgt.html(html_structure);
        this.vdID = createHash();
        tgt.attr('data-vd-id', this.vdID);
    };

    ...

    this.init();
}

并获得如下的实例:

ovd = new vd($('#container'));

在开发过程中,我决定要"沙盒" (引用,因为它与这种情况下沙盒的广泛含义无关)所有方法的全部功能,并将它们限制为以tgt提供的元素,因为页面中有多个实例处理程序的实例一定不要碰撞。为了避免必须冗余地创建tgt内所有参与元素的对象引用,我添加了一个新函数:

this.vdq = function(sel, get_sel) {
    var fullsel = '[data-vd-id="' + this.vdID + '"] ' + sel;
    return (get_sel == true) ? fullsel : $(fullsel);
};

不是通过$(selector)选择元素,而是通过this.vdq(selector)来实现。但是我知道这既不优雅也不高效(就性能=> DOM解析而言)解决方案,特别是因为我有相当多的事件监听器也依赖于这个功能。

我的问题

我在这里想要完成的事情是否有共同的名称/描述?

处理此要求时的常见做法是什么?

我在这里错过了一个快速简便的解决方案吗?

感谢任何输入!

0 个答案:

没有答案