Undercore.js脚本未在Node中渲染

Underscore.js script not rendering in Node?

本文关键字:Node js 脚本 Undercore      更新时间:2023-09-26

Noob到JS和下划线--

在下面的简单代码中,我试图使用下划线(_.each fxn)迭代var animalNames,但当我在终端的Node中运行代码时,它会直接返回cmd提示符,即什么都不运行。请帮忙解释发生了什么事。

function AnimalMaker(name) {
    return { speak: function () { console.log("my name is ", name); } };
};
var animalNames = ['', '', ''];
var farm = [];
us.each(animalNames, function (name) {
farm.push(AnimalMaker(name));
});

首先,map方法在这种情况下更合适,因为您要将名称数组映射到Animals 数组

// I renamed AnimalMaker
// In JS it's a convention to capitalize constructors and keep normal functions camel-case
var createAnimal = function(name) {
    return {
        speak: function() { console.log("my name is", name); }
    };
};
var names = ["Chicken", "Cow", "Pig"];
var animals = us.map(names, createAnimal);

使用此代码,您创建了一个动物列表。现在你仍然需要让那些动物说话:

us.each(animals, function(animal) {
    animal.speak();
});

或者使用invoke为列表中的每个对象调用一个方法:

us.invoke(animals, "speak");

如果没有下划线(node.js中的本地javascript),您也可以编写:

var animals = names.map(createAnimal);
animals.forEach(function(animal) {
    animal.speak();
});