这是我的代码:
function Apple (taste)
{
this.t = taste || null;
}
var x = new Apple("yummy");
var str = JSON.stringify(x);
var obj = JSON.parse(str);
console.log(str);
console.log(obj);
var t = Object.create(Apple, obj);
if (t instanceof Apple)
{
console.log("its an apple");
}
console.log("end");
我无法弄清楚obj
的成员本身应该是对象吗?当然它必须在某些时候成为原始人?
感谢。
答案 0 :(得分:3)
看看documentation for Object.create。第二个参数不是对象本身,而是描述对象属性的对象。
因此,您需要一个描述var t = Object.create(Apple.prototype, obj);
的对象,而不是obj
。这样的事情可能会让你在那里:
var props = {};
for (var key in obj) {
props[key] = { value: obj[key] };
}
var t = Object.create(Apple.prototype, props);