Javascript 扩展JSON协议
在我的项目中,我使用Velocity和Processing.js。对于我的处理草图,我需要扩展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]
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不是一个函数。