【发布时间】:2016-10-03 10:31:02
【问题描述】:
我找不到这方面的好指南,但我在这里寻找的只是朝着正确方向的推动。
假设我定义了一个新方法
Object.defineProperty(Object.prototype, 'myMethod', {
enumerable : false,
configurable: true,
value : function(args) {
var _self = this;
_self.doThis = function () {
// some functionality
}
....
return this
});
里面的代码可以用于假设 $('#element'),但如果我将该方法应用于 $('.elements'),它将仅适用于数组的第一个元素。如何重写该方法以同时适用于单个元素和元素组?
编辑 ******************************** ****
所以我得到了一个提示,当 jQuery 可用时,我会使用 jQuery.fn.extend(),但我担心的是 - 是否可以重写上面的方法,使其适用于同班?
【问题讨论】:
-
等等,你是在写一个 jQuery 插件,还是在 vanilla
Object对象上的一个扩展? (如果它是一个 jquery 插件,则键是 returning.each) -
在个人层面上这无关紧要,我想知道如何做到这两点(尤其是香草扩展,因为我不会总是有 jQuery)。对于这个特定的问题,我已经这样做了,并且我确实可以访问该页面的 jQuery 库。
-
@Snsa90:由于您似乎关心 DOM 元素,因此您会想要使用 jQuery 插件 (
$.fn.myMethod)。通用Object方法中没有元素。关于您的问题,jQuery 不区分单个元素,它始终是一个集合。 -
但这与香草
Object的情况无关 - 只有一个对象。 jQuery 选择器返回“对象”这一事实是 javascript 的副作用。 -
@Bergi - 这种方法可能很有用 - 谢谢。
标签: javascript jquery oop object methods