这是我尝试使用下划线运行的小代码:
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 的明确含义
这就是我的页面中的情况。不同的模板和不同的语法,因此我尝试使用 underscore
的 template
方法与不同的模板设置。
我做错了什么吗? 如何在不影响全局变量的情况下获取下划线的新实例?
谢谢!
最佳答案
这按预期工作; noConflict
释放默认变量,以便可以在不发生冲突的情况下重新分配它。
来自 _.noConflict() 的文档
Give control of the _ variable back to its previous owner.
关于javascript - 使用 noConflict 方法后下划线未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34797674/