我只是尝试了以下为对象分配函数的方法。它适用于chrome(43.0),但不适用于firefox(36.0.4)
代码:的
var obj = new Object();
obj.name = "Andrew";
obj.age = 20;
obj.print = function(){
console.log( this.name );
console.log( this.age );
}
obj.print(); // printing undefined in Firefox
我知道向Object.getPrototypeOf()
和Object.defineProperty()
等对象添加函数的其他方法,但我认为这些对象是json对象。上面的代码示例使用对象构造函数,我想知道如何将方法添加到使用对象构造函数创建的对象。如果它不可能在使用对象构造函数创建的对象中有方法,那么请告诉我。我知道如何使用JSON并获取其中的方法或使用call和apply,这只是为了找出是否有办法使用new Object()
构造函数为对象添加方法。
谢谢。
答案 0 :(得分:3)
在firefox中,该功能打印出来" Andrew"和" 20"正如你所期望的那样。
它也打印出undefined
,但这只是因为你的功能没有返回值。
没什么可担心的,firefox只是让你知道,chrome不是因为它不会引起任何问题。
如果它让您担心,请让函数返回true
obj.print = function(){
console.log( this.name );
console.log( this.age );
return true;
}
现在它将在firefox而不是true
undefined
另外,请确保您在开发工具日志级别中Log
已启用,如果Log
被关闭,则您只会看到undefined
消息。
答案 1 :(得分:0)
您是否尝试过声明这样的对象? :
var obj = {
name : "Andrew",
age : "20"
}