javascript - 返回带有链接模式 javascript 的项目

标签 javascript jquery oop object chaining

我正在开发一个小型库来了解有关 javascript 的更多信息

我正在使用链接模式:

(function(window) {
    var myLibrary = function(iD) {
        var e = document.getElementById(iD),
            methods = {
                one: function(val) {
                    e.innerHTML = val;
                    return this; // maintain chainability
                },
                two: function(val) {
                    alert(val);
                    return this; // maintain chainability
                }
            };
        return methods;
    };
    window.myLibrary = myLibrary;
})(window);

链接很好,但我无法使用 JavaScript 的内部属性。例如

myLibrary("ID").length

有返回的想法吗?

最佳答案

length 属性通常与 StringArray 等有序集合相关联。 方法作为对象,两者都不是。

所以,如果你希望它有一个长度,你必须给它一个:

methods = {
    length: e == null ? 0 : 1,

    // ...
};
myLibrary('ID').length

或者,定义一个方法,返回除了this之外的其他内容,该方法本身也有length:

methods = {
    html: function () {
        return e.innerHTML;
    },

    // ...
};
myLibrary('ID').html().length

关于javascript - 返回带有链接模式 javascript 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17801976/

相关文章:

Javascript 对象数组和唯一值

javascript - 使用纯 Javascript 获取设备的静态屏幕宽度

javascript - 使用 clientHeight/clientWidth 的差异使高度等于宽度

c++ - 为什么方法不起作用?

javascript - 尝试使用 .hide() 隐藏内容时遇到问题

javascript - 使用 ContextAPI 不会重新呈现其使用者,但内容已更改。为什么?

javascript - AJAX跨域请求

jquery - 如何创建定期更改颜色的多色文本字符串(如拉斯维加斯横幅)

c# - 从长远来看,传递整个对象还是传递一系列参数更易于维护?

python - Python 变得更面向对象了吗?