原型:使用构造函数和对象本身之间的区别

时间:2019-03-26 03:39:16

标签: javascript

我正在研究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无法正常工作?

3 个答案:

答案 0 :(得分:0)

B.prototype仅将成为B对象上的键,因为B.prototype = A将在prototype上创建键名BC也会发生同样的情况,它将创建原型的嵌套键

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不能正常工作主要是因为这个原因。