gpt4 book ai didi

javascript - 如何从内部重新加载jquery插件?

转载 作者:行者123 更新时间:2023-12-03 06:34:03 26 4
gpt4 key购买 nike

我需要从内部重新加载我的函数,我做了一个小片段:

function jqueryPlugin (selector, properties) {
this.properties = {
foo: properties.foo || 'foo',
bar: properties.bar || 'bar'
};
// this.element = $(selector);
// ...
console.log('element loaded... plugin start working...')
// ...
this.reload = function (properties) {
// ...
this(selector, properties); // ??
};
};

var instance = new jqueryPlugin('.foobar', {foo:'foooo'});
// ...
instance.reload({foo:'foobar'});

如您所见,它表示 this 不是一个函数。但是 this 怎么可能不是一个函数呢?我错过了什么?

最佳答案

这是因为 this 是一个对象,而不是一个函数。尝试使用 init 函数,就像 @RoryMcCrossan 建议的那样:

function jqueryPlugin (selector, properties) {
this.init = function(selector, properties){
this.properties = {
foo: properties.foo || 'foo',
bar: properties.bar || 'bar'
};

//test if `this` is a function: console.log(this);

// this.element = $(selector);
// ...
console.log('element loaded... plugin start working...')
// ...
};
this.reload = function (properties) {
// ...
this.init(selector, properties); // ??
};
this.init(selector, properties);
};

var instance = new jqueryPlugin('.foobar', {foo:'foooo'});
// ...
instance.reload({foo:'foobar'});

关于javascript - 如何从内部重新加载jquery插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38313805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com