如何声明和使用来自 json 对象的函数名?

Posted

技术标签:

【中文标题】如何声明和使用来自 json 对象的函数名?【英文标题】:How to declare and use the name of a function from a json object? 【发布时间】:2011-02-10 06:25:17 【问题描述】:

我有一个我在服务器中构建的地理位置的 json 对象集合。这些对象中的每一个都有两个属性:“marker”和“onClick”。

Marker 用于存储 Google Maps 标记对象,onClick 存储在地图上单击该标记时要调用的函数的名称。

当我在客户端使用 javascript 将位置对象推送到数组中时,我会创建标记并将它们分配给数组中的每个位置对象。

我的问题是,当我将标记与 onClick 属性绑定时,将无法在 DOM 中找到该函数并出现错误。

有没有办法在 json 对象中声明一个属性,以便在事件绑定上使用它?

希望我能解释清楚,如果没有,请告诉我。

谢谢!

【问题讨论】:

【参考方案1】:

如果你在全局对象中声明了一个函数,例如

function foobar()  alert('foobar') 

然后你可以通过下标符号获得对它的引用:

var funcname = 'foobar';
var func = window[funcname];
func();   // alerts

如果函数是其他对象的一部分,只需将名称用作该对象的下标:

var func = some_obj[funcname];

【讨论】:

以上是关于如何声明和使用来自 json 对象的函数名?的主要内容,如果未能解决你的问题,请参考以下文章

函数的调用和声明

函数声明语法:函数名前括号内的东西

来自包含函数的对象的函数生成器,函数名是键值是函数体

10.对象和类

ES6 简写:

函数声明和函数表达式