不通过外部的ArrayUtil自定义对象,如何给Array数组对象(内置对象)里面追加方法???
- 此时我们通过JS原生属性来操作
- 首先把额外的方法追加到原型对象(Prototype)中
- 然后通过原型属性在内置对象中引入原型对象
- 那么当前额外的方法会自动追加到内置对象中
方法一
function Array(){
//内置方法
this.join=function(){}
this.reverse=function(){}
//内置对象中通过原型属性引入原型对象
this.prototype=new Prototype() ;
//额外的方法this.search=function(target){}就自动引用到内置对象中了
}
//原型对象(Prototype)中追加额外的方法
function Prototype(){
//额外的方法
this.search=function(target){}
}
方法二:简写格式
内置对象(String,Number,Boolean,Array,Date)追加额外的方法名=function(参数){}
1)prototype属性就是给内置对象追加额外的方法使用
2)只要使用内置对象.原型属性.额外方法名=function(){..}
可以将当前方法追加内置对象中
<script>
//给Array对象追加search(target),内置对象.原型属性.额外方法名=function(){..}
Array.prototype.search=function(target){
//this:
for(var i =0 ; i <this.length ; i++){
if(this[i]==target){
return i;
}
}
return -1;
}
//追加max方法。内置对象.原型属性.额外方法名=function(){..}
Array.prototype.max=function(){
var max = this[0] ;
for(var i =1 ; i <this.length ; i++){
if(this[i]>max){
max = this[i] ;
}
}
return max ;
}