我正在研究javascript原型。
案例01 -成功!
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();
案例02 -不工作!
var A = {
hello : function() {
console.log('hello');
}
}
var B = {}
B.prototype = A;
var C = {}
C.prototype = B;
C.hello();
我想我不理解prototype和构造器的概念,也不理解对象是如何相互继承的。有人能解释一下为什么CASE 02不能工作吗?
发布于 2019-03-26 03:46:52
B.prototype
将成为B
对象上的一个键,因为B.prototype = A
将在B
上创建一个键名为prototype
的键。与C
类似,它将创建prototype的嵌套键
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();
发布于 2019-03-26 03:54:16
我真的无法解释,但对我来说,这只是一个语法问题:
var A = {
hello : function() {
console.log('hello');
}
}
var X = Object.create(A);
X.hello();
发布于 2019-03-26 03:58:02
我认为需要注意的一点是,原型是函数的属性,而不是对象。情况2不起作用主要是因为这个原因。
https://stackoverflow.com/questions/55349514
复制相似问题