大家好!
昨天我们成功使用建构式建立一个新物件。
今天我们要实作的就是,在物件原型中新增共用方法。
我们在 JS 12 提到了继承方式,但是这些方式都是直接指向原型,也就是继承所有的原型方法。
当然,我们也能只共用单一原型方法:
Felix.prototype = {
concat: Array.prototype.concat,
indexOf: Array.prototype.indexOf,
push: Array.prototype.push,
slice: Array.prototype.slice,
sort: Array.prototype.sort,
splice: Array.prototype.splice
};
还能更简单:
const arr = [];
Felix.prototype = {
concat: arr.concat,
indexOf: arr.indexOf,
push: arr.push,
slice: arr.slice,
sort: arr.sort,
splice: arr.splice
};
宣告空阵列是为了避免 [].concat
等用法,因为这会直接建立一个新阵列。
试试建立一个新物件:
/* 请使用基於 Chromium 的浏览器 */
new Felix('body'); // [body]
怎麽会这样?明明没有完全继承阵列的原型,怎麽会回传阵列呢?
其实,只要有下列属性,基於 Chromium 的浏览器就会视物件为阵列:
length
:number
splice
:function
const a = {
length: 0,
splice: function () {}
};
a; // [ length: 0, splice: function () {} ]
Array.isArray(a); // false
不过,本质上仍是物件就是了。
差不多也到尾声了。
如果对文章有任何疑问,也欢迎在下方提问和建议!
我是 Felix,我们明天再见!
>>: 【後转前要多久】# Day17 BootStrap - 介绍、导入
题库一个人不容易维护 如果想要多人共用试算表 就会怕有些人动到你设定好的格式 此时可以选择保护工作表...
这个得上一篇:https://ithelp.ithome.com.tw/articles/10260...
前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...
延续上一篇谈了产业研究分析, 你若是看完DIGITIMES黄社长的短篇, 你一定会发觉他常常提到...
今天我们要来介绍如何在 GCP 上建立 VM 并布署我们的 API 程序。 建立 VM 首先点选功能...