如何为 jquery 对象创建 getter 和 setter?

How to create a getter and setter for jquery object?

我想为 $ 对象添加一个 getter 和一个 setter,类似于 DOM 对象的 val() 函数。

如果不带参数调用val,则调用getter。使用一个参数,调用 setter。

我试过

$.fn.simpleSearch = function() {
    return _variable;
}

$.fn.simpleSearch = function (search) {
    _variable = search;
}

但是不行。

有什么提示吗?

您不能定义 $.fn.simpleSearch 两次。第二个定义将覆盖第一个。

您可以像这样设置一个简单的 getter 和 setter:

$.fn.simpleSearch = function (search) {
    if ( typeof search != 'undefined' ) {
        _variable = search;
    }
    return _variable;
}

console.log( $(jQuery).simpleSearch() )
console.log( $(jQuery).simpleSearch('foo') )

但是,这段代码并不完整,因为 _variable 需要在某处定义。你想让它成为一个全局变量吗?对象的属性?

另见 How to create custom JQuery function and how to use it?