我正在研究javascript原型。
案例01-可行!
0.10655178874731064
情况02-不起作用!
var A = function() {}
A.prototype.hello = function() {
console.log('hello');
}
var B = function() {}
B.prototype = new A();
var C = function (){}
C.prototype = new B();
var c = new C();
c.hello();
我认为我不了解原型和构造函数的概念,也不了解对象之间如何相互继承。谁能解释为什么CASE 02无法正常工作?
答案 0 :(得分:0)
B.prototype
仅将成为B
对象上的键,因为B.prototype = A
将在prototype
上创建键名B
。 C
也会发生同样的情况,它将创建原型的嵌套键
var A = {
hello: function() {
console.log('hello');
}
}
var B = {}
B.prototype = A;
console.log(B)
var C = {}
C.prototype = B;
console.log(C)
C.prototype.prototype.hello();
答案 1 :(得分:0)
我无法真正解释,但对我来说,这只是语法问题:
var A = {
hello : function() {
console.log('hello');
}
}
var X = Object.create(A);
X.hello();
答案 2 :(得分:0)
我认为需要注意的一点是,原型是函数的属性,而不是对象。原因2不能正常工作主要是因为这个原因。