javascript - 使用 noConflict 方法后下划线未定义

标签 javascript jquery underscore.js underscore.js-templating

这是我尝试使用下划线运行的小代码:

     var data = [
          {"name": "Romania"},
          {"name": "Virgin Islands, British"},
          {"name": "Gibraltar"},
          {"name": "Bangladesh"},
          {"name": "Taiwan"},
          {"name": "Jamaica"},
          {"name": "Paraguay"},
          {"name": "Reunion"},
          {"name": "Marshall Islands"},
          {"name": "Nepal" },
          { "name": "Ireland" }
        ];

        var namelist = _.pluck(data, "name");
        console.log("list 1 => " + namelist);
        // outputs =>  list 1 => Romania,Virgin Islands, British...

        (function(underscore){
          var u = underscore.noConflict();
          var namelist = u.pluck(data, "name");
          console.log("list 2 => " + namelist);
          // outputs =>  list 2 => Romania,Virgin Islands, British...
        })(_);

        var namelist = _.pluck(data, "name");
        console.log("list 3 => " + namelist);
        // throw an error: Uncaught TypeError: Cannot read property 'pluck' of undefined

与 jquery 不同,我们通常使用 noConflict 方法来避免两个 jquery 版本或其他库的 $ 之间的冲突,不知怎的,我不明白使用 noConflict 的明确含义

这就是我的页面中的情况。不同的模板和不同的语法,因此我尝试使用 underscoretemplate 方法与不同的模板设置。

我做错了什么吗? 如何在不影响全局变量的情况下获取下划线的新实例?

谢谢!

最佳答案

这按预期工作; noConflict 释放默认变量,以便可以在不发生冲突的情况下重新分配它。

<小时/>

来自 _.noConflict() 的文档

Give control of the _ variable back to its previous owner.

关于javascript - 使用 noConflict 方法后下划线未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797674/

相关文章:

javascript - 如何组织 npm 脚本和几个 webpack 配置?

javascript - $(document).ready( function() 中的语句不起作用

php - 控制不去 Controller

javascript - 如何简化underscore.js中的两个嵌套findWhere?

javascript - 使用javascript将数组对象转换为对象数组

javascript - 动态附加时标签不起作用

php - 大量数据和 PHP 错误

Javascript - 语法错误 : Unexpected token }

javascript - 使用 jquery 对不在 HTML 表中的元素进行排序

javascript - 如何使用 underscore.js 找到 javascript 数组中存在的给定值?