2017-05-13 8 views
0

私のプロジェクトではVelocityとProcessing.jsを使用しています。 Sketchの処理では、JSONオブジェクトを拡張する必要があります。しかし、私がこれを行うと、私のVelocityアニメーションのものはもう働かないし、私はそれを修正することはできません。私は拡張を行う方法JSONのプロトタイプを延長

ザッツ:

Processing.prototype.JSONObject = JSON; 

// extend JSON with primive getters 
JSON.__proto__.getInt = function(keyname) { 
    return parseInt(this[keyname]); 
}; 

私の考えは、新しいオブジェクトにJSONのクローンを作成し、これだけを拡張することもありましたが、私は本当にそれの本当のクローンを得るcouldntの。

だから、私の処理スケッチを再加工する以外に、正しい解決策は何でしょうか?

+1

ビルトイン[* JSONオブジェクト*](HTTPを参照してください。この

JSON.getInt = function (obj , key) { return parseInt(obj[key]); } 

のようなもの: //ecma-international.org/ecma-262/7.0/index.html#sec-json-object)は、* Object.prototype *から継承する単純なオブジェクトです。 '[[Prototype]]の変更は良い考えではありません。*これは* Object.prototype *を変更することを意味するので、すべてのネイティブオブジェクトはそれらのプロパティを継承します。 – RobG

+0

はい。それは私の問題のように思えます。 – Falk

+0

単にJSON.getIntに直接割り当てるのはなぜですか? – Bergi

答えて

0

あなたが直接JSONオブジェクトに "のgetInt" を追加した場合にどのような、私はこの作業

var myObj = {"myKey" : 1}; 

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

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