首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prototype :使用构造函数和仅使用对象本身的区别

Prototype :使用构造函数和仅使用对象本身的区别
EN

Stack Overflow用户
提问于 2019-03-26 03:39:16
回答 3查看 35关注 0票数 0

我正在研究javascript原型。

案例01 -成功!

代码语言:javascript
运行
AI代码解释
复制
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 -不工作!

代码语言:javascript
运行
AI代码解释
复制
var A = {
  hello : function() {
    console.log('hello');
  }
}
var B = {}
B.prototype = A;
var C = {}
C.prototype = B;
C.hello();

我想我不理解prototype和构造器的概念,也不理解对象是如何相互继承的。有人能解释一下为什么CASE 02不能工作吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-26 03:46:52

B.prototype将成为B对象上的一个键,因为B.prototype = A将在B上创建一个键名为prototype的键。与C类似,它将创建prototype的嵌套键

代码语言:javascript
运行
AI代码解释
复制
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();

票数 0
EN

Stack Overflow用户

发布于 2019-03-26 03:54:16

我真的无法解释,但对我来说,这只是一个语法问题:

代码语言:javascript
运行
AI代码解释
复制
var A = {
  hello : function() {
    console.log('hello');
  }
}

var X = Object.create(A);
X.hello();

票数 0
EN

Stack Overflow用户

发布于 2019-03-26 03:58:02

我认为需要注意的一点是,原型是函数的属性,而不是对象。情况2不起作用主要是因为这个原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55349514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档