Javascript toSource()方法不起作用
我得到一个“对象不支持此属性或方法错误”,有人知道为什么吗 我确实在userId、fname、lname、oname、sam和hasAccess中插入了值Javascript toSource()方法不起作用,javascript,Javascript,我得到一个“对象不支持此属性或方法错误”,有人知道为什么吗 我确实在userId、fname、lname、oname、sam和hasAccess中插入了值 function Employee(id, fname, lname, oname, sam, access) { this.id = id; this.fname = fname; this.lname = lname; this.oname = oname this.sam = sam; t
function Employee(id, fname, lname, oname, sam, access) {
this.id = id;
this.fname = fname;
this.lname = lname;
this.oname = oname
this.sam = sam;
this.access = access;
}
var emp = new Employee(userId, fname, lname, oname, sam, hasAccess);
var jsonstuff = emp.toSource(); //Breaking here
尽管此链接表示可能但请尝试改用toSource
是特定于Mozilla的,IE不支持
如果您只是在调试,那么最好的选择是使用console.dir(emp);将对象的内容打印到控制台窗口
更新:请注意,它在屏幕上显示“注意:此方法在Internet Explorer中不起作用!”而在屏幕上显示“非标准”。您可以调用toString,也可以将其设置为这样的条件
var jsonstuff = (emp.toSource) ? emp.toSource() : emp.toString();
编辑:
由于这对您不起作用,您可能需要使用
toSource()
在Internet Explorer或Safari中不起作用。这只是壁虎。请参阅以获取替代方案。我建议使用现有的库或插件:
- ExtJs:
- jQuery:
- 道场:
Object.prototype.toSource
|| (Object.prototype.toSource = function(){return JSON.stringify(this);})
c = {a:100}
//>Object
c.toSource()
//>"{"a":100}"
干杯 哎呀!抱歉,伙计们没有看到GitHub链接中有5种不同的JSON序列化器实现。您能否给出此代码的一个替代示例:alert(obj.toSource())请尝试
alert(JSON.stringify(obj))
+1来提及Safari!浏览器的世界不仅仅是Firefox和IE。@Vince:如果你的老板那么无能,试着向他解释,确保它在IE和FF之外工作将导致下次升级IE时更少的维护工作。当IE和FF用户使用手机浏览网站时(无论是iPhone、诺基亚还是其他没有IE的产品),这也会让他们对你的公司不那么恼火。别忘了Chrome真的会加入这场斗争。撇开Safari+Chrome+Opera不谈,你可能会留下15%的份额(取决于你的网站市场)。举个例子,请看:@Vince:1998打电话来,它想收回自己的言辞。Safari和Chrome共享Webkit渲染引擎;加在一起,它占有相当大的市场份额。此外,如果它在FF中工作,它在Safari、Chrome、Opera等中工作的几率为90%(但在IE中不工作,这更像是50%的几率),那么功能等等呢?