首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >选择篇(063)-下面代码的输出是什么?

选择篇(063)-下面代码的输出是什么?

作者头像
齐丶先丶森
发布2022-05-12 21:44:01
发布2022-05-12 21:44:01
6380
举报
文章被收录于专栏:前端面试秘籍前端面试秘籍
代码语言:javascript
复制
class Dog {
  constructor(name) {
    this.name = name;
  }
}

Dog.prototype.bark = function() {
  console.log(`Woof I am ${this.name}`);
};

const pet = new Dog("Mara");

pet.bark();

delete Dog.prototype.bark;

pet.bark();
  • A: "Woof I am Mara", TypeError
  • B: "Woof I am Mara","Woof I am Mara"
  • C: "Woof I am Mara", undefined
  • D: TypeError, TypeError
答案: A

我们可以用delete关键字删除对象的属性,对原型也是适用的。删除了原型的属性后,该属性在原型链上就不可用了。在本例中,函数bark在执行了delete Dog.prototype.bark后不可用, 然而后面的代码还在调用它。

当我们尝试调用一个不存在的函数时TypeError异常会被抛出。在本例中就是 TypeError: pet.bark is not a function,因为pet.barkundefined.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 答案: A
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档