জেএসওএন পদ্ধতিগুলি গেকো ইঞ্জিন। টোসোর্স () আদিম থেকে বেশ নিকৃষ্ট।
দেখুন তাই নিবন্ধটি প্রতিক্রিয়াতুলনা পরীক্ষার জন্য ।
এছাড়াও, উত্তর উপরে বোঝায় http://forums.devshed.com/javascript-development-115/tosource-with-arrays-in-ie-386109.html যা তাদেরকে JSON, (যা অন্যান্য নিবন্ধ মত HTTP: // www.davidpirek.com/blog/object-to-string-how-to-deserialize-json মাধ্যমে ব্যবহারসমূহ "ExtJs তাদেরকে JSON সঙ্কেতাক্ষরে লিখা সোর্স কোড" ) সার্কুলার রেফারেন্স পরিচালনা এবং অসম্পূর্ণ পারবেন না। নীচের কোডটি এর (স্পুফের) সীমাবদ্ধতাগুলি দেখায় (সামগ্রী এবং বিন্যাসগুলি বিন্যাস ছাড়াই সংশোধন করা হয়েছে)।
( //forums.devshed.com/ এ কোডের সরাসরি লিঙ্ক ... / 38 -10-এ-অ্যারে-সহ টসোর্স )
javascript:
Object.prototype.spoof=function(){
if (this instanceof String){
return '(new String("'+this.replace(/"/g, '\\"')+'"))';
}
var str=(this instanceof Array)
? '['
: (this instanceof Object)
? '{'
: '(';
for (var i in this){
if (this[i] != Object.prototype.spoof) {
if (this instanceof Array == false) {
str+=(i.match(/\W/))
? '"'+i.replace('"', '\\"')+'":'
: i+':';
}
if (typeof this[i] == 'string'){
str+='"'+this[i].replace('"', '\\"');
}
else if (this[i] instanceof Date){
str+='new Date("'+this[i].toGMTString()+'")';
}
else if (this[i] instanceof Array || this[i] instanceof Object){
str+=this[i].spoof();
}
else {
str+=this[i];
}
str+=', ';
}
};
str=/* fix */(str.length>2?str.substring(0, str.length-2):str)/* -ed */+(
(this instanceof Array)
? ']'
: (this instanceof Object)
? '}'
: ')'
);
return str;
};
for(i in objRA=[
[ 'Simple Raw Object source code:',
'[new Array, new Object, new Boolean, new Number, ' +
'new String, new RegExp, new Function, new Date]' ] ,
[ 'Literal Instances source code:',
'[ [], {}, true, 1, "", /./, function(){}, new Date() ]' ] ,
[ 'some predefined entities:',
'[JSON, Math, null, Infinity, NaN, ' +
'void(0), Function, Array, Object, undefined]' ]
])
alert([
'\n\n\ntesting:',objRA[i][0],objRA[i][1],
'\n.toSource()',(obj=eval(objRA[i][1])).toSource(),
'\ntoSource() spoof:',obj.spoof()
].join('\n'));
যা প্রদর্শন করে:
testing:
Simple Raw Object source code:
[new Array, new Object, new Boolean, new Number, new String,
new RegExp, new Function, new Date]
.toSource()
[[], {}, (new Boolean(false)), (new Number(0)), (new String("")),
/(?:)/, (function anonymous() {}), (new Date(1303248037722))]
toSource() spoof:
[[], {}, {}, {}, (new String("")),
{}, {}, new Date("Tue, 19 Apr 2011 21:20:37 GMT")]
এবং
testing:
Literal Instances source code:
[ [], {}, true, 1, "", /./, function(){}, new Date() ]
.toSource()
[[], {}, true, 1, "", /./, (function () {}), (new Date(1303248055778))]
toSource() spoof:
[[], {}, true, 1, ", {}, {}, new Date("Tue, 19 Apr 2011 21:20:55 GMT")]
এবং
testing:
some predefined entities:
[JSON, Math, null, Infinity, NaN, void(0), Function, Array, Object, undefined]
.toSource()
[JSON, Math, null, Infinity, NaN, (void 0),
function Function() {[native code]}, function Array() {[native code]},
function Object() {[native code]}, (void 0)]
toSource() spoof:
[{}, {}, null, Infinity, NaN, undefined, {}, {}, {}, undefined]