Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 扩展JSON协议_Javascript_Json_Prototype - Fatal编程技术网

Javascript 扩展JSON协议

Javascript 扩展JSON协议,javascript,json,prototype,Javascript,Json,Prototype,在我的项目中,我使用Velocity和Processing.js。对于我的处理草图,我需要扩展JSON对象。但是当我这样做的时候,我的速度动画的东西不再工作了,我无法修复它 我就是这样做的: Processing.prototype.JSONObject = JSON; // extend JSON with primive getters JSON.__proto__.getInt = function(keyname) { return parseInt(this[keyname]

在我的项目中,我使用Velocity和Processing.js。对于我的处理草图,我需要扩展JSON对象。但是当我这样做的时候,我的速度动画的东西不再工作了,我无法修复它

我就是这样做的:

Processing.prototype.JSONObject = JSON;

// extend JSON with primive getters
JSON.__proto__.getInt = function(keyname) {
    return parseInt(this[keyname]);
};
我的想法也是将JSON克隆到一个新对象中并仅扩展它,但我无法真正获得它的克隆


那么,除了重做我的处理草图之外,还有什么正确的解决方案呢?

如果您直接向JSON对象添加一个“getInt”,类似这样的东西会怎么样

JSON.getInt = function (obj , key) {
    return parseInt(obj[key]);
}
我看这行得通

var myObj = {"myKey" : 1};

JSON.getInt(myObj  , "myKey") // returns 1

OR window.JSON.getInt(myObj  , "myKey"); // same thing

内置对象是从object.prototype继承的普通对象。修改它的
[[Prototype]]
不是一个好主意(因为这意味着修改Object.Prototype,所以所有本机对象都继承这些属性)。是的。这听起来像是我的问题。为什么不直接分配给
JSON.getInt
?!我当然试过了,但控制台说getInt不是一个函数。