function $trace($var){
if('console' in this)
console.log($var); // Browser
else if('WScript' in this)
WScript.Echo($var); // Windows
};
$trace('----- ----- 1 ----- -----');
var o = {};
var b = new Boolean(o.hasOwnProperty('toString'));
$trace('toString in o : '+b.toString());
$trace('----- ----- 2 ----- -----');
o['toString'] = function(){return '1234'};
$trace('set o["toString"]');
$trace('----- ----- 3 ----- -----');
b = new Boolean(o.hasOwnProperty('toString'));
$trace('toString in o : ' + b.toString());
$trace('----- ----- 4 ----- -----');
var bFound = false;
for(var key in o)
{
if(key === 'toString')
bFound = true;
$trace('for ... in loop : ' + key);
}
if(bFound == false)
$trace('why no "toString" ?');
$trace('----- ----- 5 ----- -----');
$trace('o toString : ' + o);
浏览器中执行(例如 IE 10)
----- ----- 1 ----- -----
toString in o : false
----- ----- 2 ----- -----
set o["toString"]
----- ----- 3 ----- -----
toString in o : true
----- ----- 4 ----- -----
for ... in loop : toString
----- ----- 5 ----- -----
o toString : 1234
Window 下命令行 cscript 执行
----- ----- 1 ----- -----
toString in o : false
----- ----- 2 ----- -----
set o["toString"]
----- ----- 3 ----- -----
toString in o : true
----- ----- 4 ----- -----
why no "toString" ?
----- ----- 5 ----- -----
o toString : 1234
这个是什么问题?cscript 缺陷么?