JSON中的Javascript函数名称?

时间:2011-01-31 16:03:51

标签: javascript json

是否可以在JSON中编码JS函数名称?

3 个答案:

答案 0 :(得分:6)

JSON仅在the homepage for the project上列出了7种数据类型。

  • 对象
  • 阵列
  • 字符串
  • 数字

所有JavaScript函数名称都可以表示为字符串,因此您可以将其存储在字符串中而无需进一步编码。

答案 1 :(得分:1)

不确定,但也许你在谈论命名空间?

一个很好的例子是:http://www.dustindiaz.com/namespace-your-javascript/

它具有JSON的外观,因为JSON以类似的方式格式化。虽然,它不会被归类为“编码”您的函数作为JSON。但是,而是在命名空间结构中创建函数(很像JSON)。

另一个例子是:

var YourNameSpace = {}; // This can be whatever

(YourNameSpace.utils = function() { // Function name (utils) can be whatever
    return {
        UtilityFunction:function(){
            // Function Contents
            alert('Im cool');
        },
        AnotherUtility:function(){
            // Functions Contents
            alert('Im cool too');
        },
        AnotherSetOfFunctions:function(){
            return {
                CoolFunction:function(){
                    // Function Contents
                    alert('Im even cooler!')
                }
            }
        }()
    }
}());

并调用那些javascript函数:

YourNameSpace.utils.UtilityFunction(); //returns an alert: Im cool
YourNameSpace.utils.AnotherUtility(); //returns an alert: Im cool too
YourNameSpace.utils.AnotherSetOfFunctions.CoolFunction(); //returns an alert: Im even cooler!

所以上面有JSON的外观,因为它们在结构上几乎相同。

希望这会有所帮助,或者至少为您提供一种格式化JS的新方法。

答案 2 :(得分:0)

如果您只讨论函数名称,则没有问题,因为函数的名称是字符串。

但是如果你在谈论用成员函数序列化javascript对象,那就不那么容易了。

但是,您可以使用 JSONfn 插件

http://www.eslinstructor.net/jsonfn/

可以让你 stringify / parse javascript对象与成员函数

希望这有帮助,

-Vadim