首页 > 代码库 > Javascript apply的巧妙用法

Javascript apply的巧妙用法

Math.max 可以实现得到数组中最大的一项

var array = [1,2,3,4,5];var max = Math.max.apply(null, array);console.log(max); // 5

调用的时候第一个参数给了一个null,这个是因为没有对象去调用这个方法,只需要用这个方法帮助运算,得到返回的结果就行,所以直接传递了一个null过去。

Math.min 可以实现得到数组中最小的一项

var array = [1,2,3,4,5];var min= Math.min.apply(null, array);console.log(min); // 1

在原生对象上面添加max与min方法

那就会需要用到原生对象方法Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

在原生对象上面添加方法,for循环也会查找不到

    Object.defineProperty(Array.prototype, ‘max‘, {          writable: false,          enumerable: false,          configurable: true,          value: function () {              return Math.max.apply(null, this);          }      });            Object.defineProperty(Array.prototype, ‘min‘, {          writable: false,          enumerable: false,          configurable: true,          value: function () {              return Math.min.apply(null, this);          }      });  

如何使用呢,直接在数组上调用即可

var arr = [54,545,2165,545,56];  console.log(arr.max());  console.log(arr.min()); 

 

Javascript apply的巧妙用法