大家好!
我们进入今天的主题吧!
如果要推入项目至阵列,我们会使用原型方法。
但是,为什麽判断阵列不能使用原型方法呢?
/* 原型方法 */
([]).push(0); // 1
({}).push(0); // TypeError: {}.push is not a function
/* 静态方法 */
Array.isArray([]); // true
Array.isArray({}); // false
正如我们昨天提到的:
阵列和物件的方法不能共用,是因为它们拥有不同的特性。
当我们建立一个功能是判断阵列的原型方法时,就只能应用於阵列而已,实在是没有意义。
如果硬要检查不是阵列的型别,就会出现昨天的 TypeError
错误,因为只有阵列才能使用这个方法。
简而言之,只要确定操作对象是使用建构函式建立的物件就使用原型方法;反之,则使用静态方法。
Ironman.progress = function (date) {
let c = new Date(date);
let p = (c - new Date('2021-09-15')) / 86400000 / 30 * 100;
return Math.round(p) + '%';
};
Ironman.progress('2021-09-23'); // '27%'
Ironman.progress('2021-10-15'); // '100%'
当函式的操作对象不同於原型方法的操作对象时,但是又想要将函式和建构函式打包在一起,此时就会写成静态方法,上方的程序码就是一个举例。
执行原型方法必须要先建立物件,静态方法则不需要,因为静态方法就和一般的函示没有两样,限制也比较少,更能处理较多的资料型别。
差不多也到尾声了。
如果对文章有任何疑问,欢迎於下方提问和建议!
我是 Felix,我们明天再见!
如果你看完Day_12 有线网路应用(四)跟着也买了管理型交换机,那麽看到这篇应该会想揍人XD。 今...
这个系列的 Day 19 至 Day 24 都是为了完成永丰银行数位金融 API 「丰收款」结合 W...
简介 本系列内容将会提及D3Js和资料相关内容的知识,主题订定为资料驾驭网页,其实一部分原因来自D3...
今天要实作的是 TextField ,虽然是参照 Material-UI 的概念,但在这边只是实作...
-化名(Pseudonymization) 假名(Pseudonymized)数据可以通过添加信息...