gpt4 book ai didi

javascript - 是否可以覆盖缩小的 JavaScript 函数

转载 作者:行者123 更新时间:2023-11-28 02:10:13 24 4
gpt4 key购买 nike

是否可以覆盖缩小的 Javascript 文件中包含的函数?

详细信息:我正在尝试重写 Twitter Bootstrap Typeahead 插件 (v2.3.2) 中的 process() 函数,以便在返回的项目超出显示的项目时在下拉列表的底部添加一个指示器。

这是我的代码:

var customProcess = function (items) {
var that = this

items = $.grep(items, function (item) {
return that.matcher(item)
})

items = this.sorter(items)

if (!items.length) {
return this.shown ? this.hide() : this
}

//Get the default item slice and determine whether the indicator is needed
var itemSlice = items.slice(0, this.options.items);
if (items.length > this.options.items) {
itemSlice.push("...");
}

return this.render(itemSlice).show();
};

// Reassign the typeahead.process() function to the customized
// version that adds a visual indicator if more items are
// returned than the amount shown (options.items).
$.fn.typeahead.Constructor.prototype.process = customProcess;

如果我使用 Bootstrap JavaScript (bootstrap.min.js) 的缩小版本,则会失败,并且实际上完全终止了预输入功能。如果我改为获取非缩小版本(bootstrap.js),它就可以完美工作。

[顺便说一句,我之前对旧版本的 typeahead 插件(我相信是 v1.8.x)使用​​了相同的方法,并且它也与最小化版本完美配合。难道是我运气好?]

最佳答案

缩小不会改变“可见”API。如果您可以在缩小库上以library.functionName(...) 的形式调用函数,那么您可以覆盖该属性并将其转换为其他内容(请注意,函数只是一个通过添加执行运算符 () 来调用的属性)它)。

有一个警告:如果该函数是使用Object.defineProperty设置的,并且具有默认的可配置和/或可写配置选项(或这些值显式设置为 false),那么它将被“锁定”以防止被修改(它不会分别被删除和/或分配)。

关于javascript - 是否可以覆盖缩小的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221819/

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