Prototypal继承混合

时间:2015-10-11 18:32:28

标签: javascript

var P = {
    name: "James"
};

var j = Object.create(P);
console.log(j.name);
j.name = "James";
console.log(j.name);

P.prototype.test = "love";

console.log(P.test);

我有上面的代码。它给了我一个错误,我无法设置我无法设置属性' test'未定义的。我以为每个物体都有原型? P对象没有原型吗?并且不应该在该原型上声明的任何方法可用于j?

也可以有人向我解释Object.create()函数的作用吗?

1 个答案:

答案 0 :(得分:0)

P等普通对象没有.prototype属性。它只是具有此功能的功能。

var o = {};
var f = function () {};

console.log(o.prototype); // nope
console.log(f.prototype); // there it is