码迷,mamicode.com
首页 > 其他好文 > 详细

Math.min() / Math.max() 使用方法

时间:2017-08-22 14:24:40      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:max   on()   add   继承   应用   app   asc   blog   搜索   

首先弄懂apply 和 call 都是js函数自带的方法。区别如下:

apply和call的用法只有一个地方不一样,除此之外,其他地方基本一模一样

1. a.call(b,arg1,arg2…)

2. apply(b,[arg1,arg2]) //apply只有2个参数,它将call的参数(arg1,arg2…)放在一个数组中作为apply的第二参数

例1:apply的第一个参数传递作用域,第二个参数传递数组。

Math.min.apply(null, [1, 2, 3]) 等价于 Math.min(1, 2, 3)    // 1

 

下面再来看call有哪些用途:

一:实现继承

function Animal(name)
{
    this.name=name;
    this.showName=function()
    {
        alert(this.name)
    }
}
function Cat(name)
{
    Animal.call(this,name); //将Animal应用到Cat上,因此Cat拥有了Animal的所有属性和方法
}
var cat = new Cat(“Black Cat”);
cat.showName(); //浏览器弹出Black Cat

  

二.call方法的定义:

大家在百度里面可以搜索call,关于call的定义都很拗口。在我的理解,a.call(b,arg1,arg2..)就是a对象的方法应用到b对象上。例如如下例子:

function add(a,b)
{
    alert(a+b);
}
function reduce(a,b)
{
    alert(a-b);
}
add.call(reduce,1,3) //将add方法运用到reduce,结果为4

三.call可以改变this指向

function b()
{
    alert(this)
}
b(); //window
b.call(); //window
b.call(“a”,2,3); //a

再看一个复杂的例子:

function Animal()
{
    this.name=”animal”;
    this.showName=function()
    {
        alert(this.name)
    }
}
function Cat()
{
    this.name=”cat”;
}
var animal = new Animal(); //原型继承
var cat = new Cat();
animal.showName(); //结果为animal
animal.showName.call(cat); //原本cat没有showName方法,但是通过call方法将animal的showName方法应用到cat上,因此结果为 cat

  

  

Math.min() / Math.max() 使用方法

标签:max   on()   add   继承   应用   app   asc   blog   搜索   

原文地址:http://www.cnblogs.com/mmzuo-798/p/7411296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!