gpt4 book ai didi

jquery - 扩展 javascript 库(underscore、jquery、backbone 等)

转载 作者:行者123 更新时间:2023-11-29 19:40:36 26 4
gpt4 key购买 nike

我在我的代码中使用了多个库,并希望使用自定义函数来扩展它们。

我查看了 github,了解实现该目标的一般逻辑,但需要一些说明。

扩展下划线

(function() {

_.mixin({

// Custom methods

});

}).call(this);

(function(){ }).call(this); 在这里代表什么?
我们为什么需要它?
为什么在括号之间?
call(this); 究竟做了什么?

扩展 JQUERY

(function (factory) {
if ( typeof define === 'function' && define.amd ) {
define(['jquery'], factory);
} else if (typeof exports === 'object') {
module.exports = factory;
} else {
factory(jQuery);
}
}(function ($) {

// Custom methods

}));

什么是function(factory)?为什么扩展下划线时不使用它?
为什么我们在第二个函数中将 $ 作为参数,但我们没有使用带下划线的 _

扩展主干

;(function(factory) {
if (typeof define === 'function' && define.amd) {
define(['underscore', 'backbone'], factory);
} else {
factory(_, Backbone);
}
}(function(_, Backbone) {

// Custom methods

return Backbone;

}));

为什么我们在最后返回Backbone?我可以在这里省略 function(factory) 并为我想要扩展的所有库制作一个通用的 function(factory) 吗?

我对这一切感到困惑,如果你有时间回答我的一些问题那就太好了!

最佳答案

下划线

  • 什么是 (function(){ }).call(this);站在这里?
  • 我们为什么需要它?
  • 为什么在括号之间?
  • 究竟调用了什么(this);做什么?

这是一个 self 执行的匿名函数。

它创建了一个私有(private)(函数)范围,因此在其中声明的任何变量(var)都不会泄漏到更高的范围(可能是窗口)。

.call(this) 只是使用“this”(当前作用域,可能是窗口)的上下文调用函数。

总结

  • 声明一个匿名函数(未分配给变量)
  • 然后立即使用它的上下文执行/调用它。

关于jquery - 扩展 javascript 库(underscore、jquery、backbone 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23329815/

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