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()); 
时间: 2024-10-29 19:11:22

Javascript apply的巧妙用法的相关文章

【转】深入学习JavaScript: apply call方法 详解(转)

Js apply方法详解 原文:http://blog.csdn.net/myhahaxiao/article/details/6952321 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和cal

深入学习JavaScript: apply 方法 详解(转)——非常好

摘自:http://blog.csdn.net/qianzai5765638/article/details/6952321 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和call的区别在哪里 2

JavaScript: apply , call 方法

我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和call的区别在哪里 2.        什么情况下用apply,什么情况下用call 3.        apply的其他巧妙用法(一般在什么情况下

Javascript apply()和call()方法

Javascript内置对象 首先,我从网上查找了apply()和call()的定义.然后用例子解释这两个方法的意思和用法. apply():方法能劫持另一个对象的方法,继承另一个对象的属性. Function.apply(obj,args):方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) 代码示例: <script type="text/javascript&qu

深入学习JavaScript: apply 方法 详解

我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享..  如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.        apply和call的区别在哪里 2.        什么情况下用apply,什么情况下用call 3.        apply的其他巧妙用法(一般在什么情况下

javascript:apply方法

1.        apply和call的区别在哪里 2.        什么情况下用apply,什么情况下用call 3.        apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:

javascript中的继承用法

本文实例汇总了javascript关于继承的用法,希望本文所述对大家的javascript程序设计有所帮助.分享给大家供大家参考.具体如下:代码如下: /** * 实现子类继承父类,但不会产生多余的属性和方法 * @returns {Function} */ define(function(){ return function(subType, superType){ var proto = new Object(superType.prototype); proto.constructor =

javaScript call 函数的用法说明

javaScript 中的 call() 是一个奇妙的方法,但也是一个让人迷惑的方法,先看一下官方的解释 call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明 call 方法可以用来代替另一个对象调用一个方法

javascript中NaN的用法

NaN是一个特殊的数值,任何数值除以0会返回NaN,不会影响其他代码的执行(其实为0/0为NaN,正数除以0得到infinity,负数除以0得到负的infinity) 它的特点为: 1.任何涉及NaN的操作都返回NaN 2.NaN与任何值都不相等,包括NaN 它涉及到的函数为isNaN();该函数接受一个参数,该参数可以是任何类型 javascript中NaN的用法,布布扣,bubuko.com