JavaScript依赖注入+ jQuery

JavaScript Dependency Injection + jQuery

本文关键字:jQuery 注入 依赖 JavaScript      更新时间:2023-09-26

我一直在寻找更新我的骨干技能,因为即将到来的工作将使用它(我通常在Angular或后端工作)。我在浏览todomvc的Backbone示例时发现了这个。我想知道为什么$被传递到闭包/匿名函数。如果是依赖注入,我也希望传入下划线。我注意到$没有在任何其他文件/闭包中传递。Github源

/*global Backbone, jQuery, _, ENTER_KEY */
var app = app || {};
(function ($) {
    'use strict';
    // The Application
    // ---------------
    // Our overall **AppView** is the top-level piece of UI.
    app.AppView = Backbone.View.extend({

这段代码的目的是为你的代码提供"模块化"、私密性和封装性。

这是你在jQuery的自执行函数中创建的一种别名。将jQuery传递给括号的目的是为全局变量提供局部作用域。这有助于减少查找$变量的开销,并在某些情况下允许对minifier进行更好的压缩/优化。

将$作为参数发送给匿名函数使$成为该函数的局部变量,如果$函数被多次调用,这对性能有一点积极的影响。这是因为javascript首先在局部范围内搜索变量,然后向下遍历到窗口范围($通常所在的地方)。

也是为了避免$变量的潜在冲突。如果其他东西定义了一个名为$的变量,你的插件可能使用了错误的定义