2017-05-13 6 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]); } 

같은에 "의 getInt"을 추가하는 경우 : //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 객체, 나는이 작업

var myObj = {"myKey" : 1}; 

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

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