var processMessageData = function(b) {
if (!b) {
return null
}
if (typeof (b) == "string") {
b = (new Function("return " + b))()
}
if (!b.id) {
return null
}
var a = (new Function("return " + $("#" + b.id).val()))();
a.requestFields = b.requestFields || {};
a.responseFields = b.responseFields || {};
return a
}
今天看到一段代码完全看不明白,上面的 b = (new Function("return " + b))()就是返回b吧,为什么要这样写?还有就是a应该是个对象,作用域应该在函数内,为什么可以做返回值?希望高手解答一下。
假设
$("#" + b.id).val()
取到的是{requestFields:123}
,那替换一下就成为了了,相应的a就是返回的对象
{requestFields:123}