JS 10 - 原型继承

大家好!

今天只会简单介绍原型的继承关系,当我们介绍完原型链後,就会详细说明继承的方法。
我们出发吧!


原型继承

物件的 valueOf 方法是位於 Object 的原型:

/* 检查 {} 指向的原型是否为 Object 的原型 */
({}).valueOf === Object.prototype.valueOf; // true
Object.prototype.isPrototypeOf({}); // true
Object.getPrototypeOf({}) === Object.prototype; // true

那麽,阵列的 valueOf 方法也是位於 Array 的原型吗?

([]).valueOf === Array.prototype.valueOf; // true
([]).valueOf === Object.prototype.valueOf; // true

怎麽会这样,阵列的 valueOf 方法究竟是位於哪里?
事实上,阵列的 valueOf 方法位於 Object 的原型,因为 Array 的原型并没有 valueOf 方法。

Array.prototype.valueOf === Object.prototype.valueOf; // true

/* 检查 Array.prototype 是否有 valueOf 属性 */
Array.prototype.hasOwnProperty('valueOf'); // false

/* 测试 Array.prototype 指向的原型是否为 Object.prototype */
Object.getPrototypeOf(Array.prototype) === Object.prototype; // true

这样就能知道 Array 的原型所指向的原型就是 Object 的原型,也就是 Array 继承了 Object


各位对於「继承」会如何解释呢?

差不多也到尾声了。
如果对文章有任何疑问,欢迎於下方提问和建议!
我是 Felix,我们明天再见!


<<:  DAY 12:Concurrency Patterns 融会贯通+Graceful Shutdown,正确关闭各个宇宙的次元门

>>:  Day 10 Section Summary

如何让Word的数学公式居左,编号靠右

最近公司赞助我到Intelligent Automation & Soft Computin...

07. DB x Factory x Test

昨天介绍过 Factory,今天我们要用在测试程序里。 试一下建立三笔资料是否资料库真的有三笔。 p...

Day 18 | 万年范例-TodoList

没错又是万年的demo作品- TodoList 今天我们先来做最最最阳春的TodoList,只先做简...

Day17【Web】网路攻击:点击劫持 Clickjacking

点击劫持 点击劫持(Clickjacking) 技术又称为 界面伪装攻击(UI redress at...

Day 19 不得不变的学习方式

事情在好起来之前,总会先变很坏,然後才会慢慢的变好。在经历这些过程後,记得要把失去的补回来,把得到的...