- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用 _.bind(...)
。我知道如何使用绑定(bind)强制函数上下文,但还不知道如何进行柯里化(Currying)。
我尝试的是:
add = function(number) { this.sum = this.sum + number; }
add5 = _.bind(add, { sum: 0 }, 5)
但是,调用add5()
,或者add5(5)
似乎没有什么效果。
任何线索如何包装参数,以便从一个调用到另一个调用保留上下文?
最佳答案
可能您想做部分应用,而不是 currying/schönfinkeling。下划线有 _.partial
为此功能:
function add(a, b) { return a+b; }
var add5 = _.partial(add, 5);
您也可以使用 _.bind
,并且它有一些效果。例如:
var add5 = _.bind(add, null /*context is irrelevant*/, 5);
add5(3); // returns 8
但是,您的函数没有返回任何内容,并且您更改的上下文不可访问。然而:
var ctx1 = {sum: 0};
function add(a) { this.sum += a; } // returns nothing!
var addto1 = _.bind(add, ctx1);
addto1(5); // undefined
ctx1; // {sum: 5}
var add5to1 = _.bind(add, ctx1, 5);
add5to1(); // undefined
ctx1; // {sum: 10}
var ctx2 = {sum: 5};
add3to2 = _.bind(add, ctx2, 3);
add3to2(); // undefined
ctx2; // {sum: 8}
关于javascript - 如何使用 UnderscoreJS 进行柯里化(Currying)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521336/
我有这个数组: var ty = [ { "Language": "en-GB", "Section": "Sales", "ItemName": "Typ
我有一个对象列表“objlist”和一个 id 列表“idlist”。 var objlist = [{id:1, visible:true},{id:2, visible:false},{id:3,
我想做一个面包屑。我从后端获取数据,如下所示: var object = { "Department": { "DeptCode": null, "Descri
我有一个带有 bool 值的对象,一旦该值为true,我想测试我的对象中是否存在与函数相同的值,如果存在,那么我想调用该函数。我只需使用 JavaScript 即可做到这一点。 但是我正在寻找使用 u
我有这样的数据: var dates = [ {date: "2000-01-01", total: 120}, {date: "2000-10-10", total: 100},
假设我有一个长度为N的数组myArray。我想循环第 N 次。在纯 JavaScript 中,这将是: for (var i = 0; i < myArray.length; i++) {} 有没有办
我有一个来自数据库的对象数组,为了简洁起见,我想将其折叠。我已导入 underscore.js 来帮助完成此过程,但尝试使用提供的“groupBy”函数来压缩以下列表未成功: [ {ID:25
我有如下所示的 JSON 数组: [{ 'a': 1, 'b': 10, 'aa': { 'a': 11, 'ab': 110 } }, { 'a': 2, 'b': 2
这是album.tracks.items的json内容 [{ "disc_number": 1, "duration_ms": 220613, "exp
我有两个数组,balances 和 commits balances = [ {name: 'vacation', value: ''21}, {name: 'account', value: '2
我有一个组对象: {groupid1: "metadata", groupid2: "metadata"} 还有一组用户: [ { name: "something", groups: [
第一次使用下划线,我卡住了,找不到例子。 我的数据是: [{ "store_name": "Store 1", "franchisee_id": "id01",
只是存在一个 underscoreJs 方法来将具有某些属性的对象转换为具有关键属性的对象集合吗? 我的意思是,如果 underscorejs 中存在一个等效于此的简单方法: function obj
我正在尝试使用下划线独特的功能,但无法让它工作,这是我的测试代码: var foo = [ { "a" : "1" }, { "b" : "2" }, { "a" : "1" } ]; _.uniqu
有没有办法将数字列表分组为带下划线的数字区间? // Input: var arr = [0,1,2,8]; var interval = 3; // Output: // There are 3 n
在 AngularJS Controller 中有以下内容: $scope.initiatives = _.where($scope.initiatives, {i_status_id:'Open'}
我试图简单地用空字符串替换无效日期。我正在迭代对象数组,但每当我尝试使用 _.each() 时,我都会迷路。如果有人可以向我展示一种迭代列表中所有 fieldsToCheck 项目的方法,那就太棒了。
我正在 Underscore.js 中寻找一种方法来查找数组中数字之间的两个数字。 数字不能是 20 或列表中的任何数字。 我有一个可以运行的 Javascript 版本 var data = [
基本上我想使用 Lo dash 或 Underscore(最好是 lo-dash),但是对于我的系统来说,重要的是我不要全局加载变量并匿名使用它们。如果我不能使用 anon,那么至少将当前版本保留在页
我有一个对象数组。我想groupby & filter(remove) undefined object 、类别。为了更清楚地说明,请参阅下面的脚本: arrayFlatten = [ {
我是一名优秀的程序员,十分优秀!