var strArr = str.indexOf("'") >= 0 ? eval("(" + str + ")") : eval('(' + str + ')')
var obj = {}
for (var i = 0i <strArr.lengthi++) {
var itemArr = strArr[i].split("x")
if (itemArr.length >1) obj[itemArr[0].trim()] = itemArr[1].trim()
}
return obj
}
如果对象的值只是数字可以加上parseInt或者parseFloat这两个函数
object的prototype链中都没有实现自己的toString()的话,把object转换为String时就会调用Object.prototype.toString,
输出的格式是[object
对象的类型]
例如Object.prototype.toString.call(123)返回"[object
Number]",
Object.prototype.toString.call('str')返回"[object
String]".
使用Object.prototype.toString.call(obj)的方式判断对象类型比用typeof要"准确",
因为typeof
[]会返回"object"而Object.prototype.toString.call([])会返回"[object
Array]"
如果想在调试时查看object里的内容,
可以用console.log(obj)来输出.
在chrome之类的现代浏览器里按下F12打开console可以看到整个obj的结构