首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原型继承是如何反向工作的?

原型继承是如何反向工作的?
EN

Stack Overflow用户
提问于 2022-01-27 12:16:42
回答 1查看 32关注 0票数 0

如您所见,下面是我的代码。我创造了两个物体,卤素和气球,并给出了卤素性质的唱歌和气球性质的阅读。我称之为halogen.read(),它是读取属性,但是卤素是气球的原型,而气球不是卤素的原型。js在引擎盖下是怎么工作的??

代码语言:javascript
复制
const halogen = {
  sing: function() {
    console.log('I can sing');
  }
}

const balloon = new Object(halogen);

balloon.read = function() {
  console.log('I can read');
}

halogen.read();

EN

回答 1

Stack Overflow用户

发布于 2022-01-27 12:25:50

当使用非nullundefined参数调用null构造函数时,它不会创建新对象(令人惊讶的是,即使使用new规格链接),它只是将参数转换为对象(如果它已经不是对象并返回它)。因为halogen已经引用了一个对象,所以不需要转换,您基本上是在执行balloon = halogen,它们最终都引用了相同的对象。

您可能打算使用Object.create,它创建一个新对象并将您提供的对象参数赋值为新对象的原型:

代码语言:javascript
复制
const halogen = {
    sing: function() {
        console.log("I can sing");
    },
};

const balloon = Object.create(halogen);

balloon.read = function() {
    console.log("I can read");
};

console.log(typeof halogen.read); // undefined
console.log(typeof balloon.read); // function
console.log(typeof balloon.sing); // function

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

https://stackoverflow.com/questions/70878424

复制
相关文章

相似问题

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