从文件加载带有其功能的javascript对象

时间:2012-09-28 10:26:12

标签: javascript ajax json

在网站中,我想使用javascript函数从文件加载对象。我最初尝试使用JSON,但我的javascript对象很复杂,并且具有一些参数的功能。有没有办法从文件中加载对象?

myObject.js(因为它有一个函数,它不是有效的JSON)

{
    "value1": "some value",
    "functionValue": function() { 
        return "function value"; 
    }
}

从文件

加载对象的函数
function getFileObject(fileURL) {
    var myObject;

    $.ajax({
        url: fileURL,
        type: "GET",
        datatype: 'json',
        async: false,
        success: function (result) {
            myObject = result;
        }
     });

     return myObject;
}

2 个答案:

答案 0 :(得分:1)

如果您真的必须传递函数实现,只需不要使用JSON并评估您的文本。

function fetchFileObject(callback) {
    $.ajax({
        url: value,
        type: "GET",
        datatype: 'text',
        success: function (result) {
            var myObject = eval('('+result+')');
            callback(myObject); // do something  with myObject
        }
     });

}

但是......这不是我自己认为的。

请注意,你真的不应该使用async: false。它已被弃用,并且没有任何充分的理由使用它。这就是我重构你的代码以接受回调的原因。

答案 1 :(得分:0)

您是否尝试使用

导入myobject.js

     < script src =“myobject.js”type =“text / javascript”/>

标记在网页的标题中,并将myobject.js文件中的对象分配给可以在其他.js文件中使用的变量?

这适用于单个文件(我自己没有测试过),但如果您想在客户端动态导入文件,@dystroy的解决方案可能更合适。