初识 —— prototype
官方解释:在JavaScript中,prototype对象是实现面向对象的一个重要机制。每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。
————————————————————————————————————————————————————————————————————-
首先,我们用一个数组来举例子 , 我们需要一个 求和 的方法来计算一个数组的和
第一个会想到使用 for 循环
var arr = [1,2,3];
// 循环求和
var sum = 0;
for(var i=0;i<arr.length;i++){
sum+=arr[i];
}
但是如果后期对数组有修改,那么需要很多的 for 循环,增加了太多代码量。 这时我们想到使用函数的方法.
数组相当于对象,我们可以为它添加方法 。 把这个求和的方法命名为 sum
var arr = [1,2,3];
arr.sum = function(){
var sum=0;
for(var i=0;i<arr.length;i++)
{
sum+=arr[i];
}
return sum;
}
console.log(arr.sum());
}
这样添加的方法只适用于在命名为 arr 的数组上,但是如果需要对多个数组进行求和,我们还需要对每一个数组都添加这样的方法,这样会非常的麻烦,还会让代码看起来十分冗余。所以我们采用直接在对象的原型上添加方法,让所有是数组的都可以使用该方法。 从这里可以看到该数组所包含的原型
将 sum 方法添加到数组类型的原型上,并且使用该方法
Array.prototype.sum=function(){
var jia=0;
for(var i=0;i<this.length;i++){
jia+=this[i];
}
return jia;
}
var arr1 = [1,2,3];
var arr2=[4,5,6];
console.log(arr1.sum());
console.log(arr2.sum());
控制台的输出
可以看到自己添加的属性