从构造函数创建一个匿名函数对象,并将其存储在另一个对象中
Create an anonymous function object from a constructor and store it in another object
我将以下函数存储在JSON数据中:
function (e) { e.preventDefault();var caro=$(e.target).parents('.carousel');curr=$(caro).parents('.grid-stack-item');currInt=$(curr).find('.carousel-indicators li.active').data('slide-to');$(curr).find('.carousel-indicators li.active').removeClass('active');currInt+=1;var currLi=$(curr).find('.carousel-indicators li')[currInt];$(currLi).addClass('active');$(caro).carousel(1);$(caro).carousel('pause');var tr=$(e.target).closest('tr');data=this.dataItem(tr);wizard(1,$(e.target).parents('.grid-stack-item'),data); }
我正在使用一个外部库,它要求JSON字符串中的函数作为JS函数附加到对象属性。
从字面上看,代码是这样的:grid({
click: data.functionData
)};
我的问题是数据。functionData被评估为一个字符串,当click事件在网格对象上执行时,结果是一个错误,因为数据应该是一个函数而不是字符串。
我需要做的是创建一个匿名函数…
var anonFun = new Function();
并将事件作为参数....
function (e) { }
然后将其附加到网格中的click事件…
grid({ click: function (e) { //dostuff } });
我接近完成这一点,但我现在的问题是我不知道如何给一个匿名函数创建一个函数构造器参数'e'。
给出当前状态,我的代码是…
var jsonData = "function (e) { e.preventDefault();var caro=$(e.target).parents('.carousel');curr=$(caro).parents('.grid-stack-item');currInt=$(curr).find('.carousel-indicators li.active').data('slide-to');$(curr).find('.carousel-indicators li.active').removeClass('active');currInt+=1;var currLi=$(curr).find('.carousel-indicators li')[currInt];$(currLi).addClass('active');$(caro).carousel(1);$(caro).carousel('pause');var tr=$(e.target).closest('tr');data=this.dataItem(tr);wizard(1,$(e.target).parents('.grid-stack-item'),data); }";
var anonFunc = new Function(jsonData);
grid({ click: anonFunc )};
我想我需要这样做:
var anonFunc = new Function(e, jsonData);
并将jsonData更改为仅为函数的内部内容
当时不能理解它,但是通过剥离我的JSON数据仅作为函数内容,我能够使用函数构造器创建一个函数对象并将其附加到我的单击事件处理程序。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Functionvar anonFunc = new Function('e', data.functionContentsData);
grid({ click: anonFun )};
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- 在Javascript数组或一个对象中存储多个数据所需的Tweak
- 将引用一个对象存储到Mongoose和MeanJS中
- 如何存储一个对象数组,这些对象是 ajax 查询从 javascript 中的 JSON 中提取数据的结果
- AngularJS是否在$error.maxlength对象中存储一个值
- 基于另一个对象键/值存储对象值
- 如何通过名称在另一个对象上调用存储在一个对象中的函数
- 自动创建Javascript对象并将其存储在另一个对象中
- 分析一个文件的内容并用JavaScript存储在一个对象中
- 为什么可以't我使用作为值存储在另一个对象中的对象键
- 从构造函数创建一个匿名函数对象,并将其存储在另一个对象中
- 从本地存储javascript的对象数组中删除一个对象
- 用indexedDB存储一个three.js网格对象
- 在chrome.storage中存储一个复杂对象
- 将Raphael对象存储在另一个对象中以供以后操作
- 如何调用存储在对象中的函数,该对象被用作另一个函数的参数
- 动态地在另一个对象中存储Javascript对象
- Javascript:一个对象如何存储对另一个对象的引用's方法,并将其称为“s”;“远程”;