gpt4 book ai didi

Javascript 类型错误,不是一个函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:30:32 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我似乎无法解决!它是我正在编写的一个大框架的一部分,但我写了一些具有相同问题的测试代码。请参阅以下内容:

!function ($, window, undefined) {

// BASE FUNCTION
var test = function (selector, context) {
return new test.fn.init(selector, context);
};

// SELECTOR FUNCTIONS
test.fn = {
selector: undefined,
init: function (selector, context) {
// Use jQuery to build selector object
this.selector = $(selector, context);
return this;
},

// Create a popup dialog
popup: function (options) {
this.selector.dialog();
}
},

// Expose Carbon to the global object
window.test = test;

}(window.jQuery, window);

现在当我使用以下内容时:

test('#popupLink').popup();

我收到“TypeError: test("#popupLink").popup 不是一个函数”。我知道它部分起作用了,因为如果我做类似的事情,我可以使用标准的 jQuery 函数:

test('#popupLink').selector.hide();

任何帮助将不胜感激,因为我现在有精神障碍。提前致谢! :)

更新

我已经使用 console.log 查看返回的对象,它只有选择器元素,这是有道理的,因为我没有使用原型(prototype)。我该如何解决?

最佳答案

(function ($, window) {
// BASE FUNCTION
var test = function (selector, context) {
return new test.fn.init(selector, context);
};

// SELECTOR FUNCTIONS
test.fn = test.prototype = {
constructor: test,
init: function (selector, context) {
// Use jQuery to build selector object
this.selector = $(selector, context);
return this;
},

// Create a popup dialog
popup: function (options) {
console.log('popup');
return this;
}
};

// Expose test to the global object
window.test = test;
}(window.jQuery, window));

test.fn.init.prototype = test.fn;

您在创建的测试实例上错过了构造函数和原型(prototype)链。

关于Javascript 类型错误,不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109652/

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