JS 原型之函数添加自定义工具函数
我们从一个js 题目开始讨论:
使下面代码正常运行:
const a = [1,2,3,4,5];
a.multiply()
console.log(a) // [1,2,3,4,5,1,4,9,16,25]
一个简单的实现:
(function(){
function multiply(){
let _this = this
const arryLength = _this && _this.length
for(let i=0; i<arryLength; i++) {
_this.push(_this[i]*_this[i])
}
}
Array.proptype.multiply = multiply
function runOpt(){
let a = [1,2,3,4,5]
a.multiply()
console.log(a)
}
runOpt()
})()
这里可以学习到几个js的知识点:
(1)prototype 是一个函数的属性, 并且是函数的原型对象。 引用它的必然是一个函数。
(2)其自定义扩展函数的this 指向该对象原值;
(3)扩展函数中可直接通过this. arguments 获取该函数的实参(这里可以省略this, 加上this. 是为了说明调用其只能是对象).
(4) 不同数据类型对象自定义函数可通过其关键字对应的原型对象上添加函数来实现