Math.min() / Math.max() 使用方法
2024-10-11 06:14:37
首先弄懂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
最新文章
- CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(2)CSS3利用图层叠加实现多背景
- Mongodb profile(慢查询日志)
- Fatal error: Call to undefined function curl_init()问题
- 启动hadoop,没有启动namenode进程。log4j:ERROR setFile(null,true) call faild.
- OBJ Loader Source Code
- Dapper ORM 用法—Net下无敌的ORM
- ci中如何得到配置的url
- bzoj 2693: jzptab 线性筛积性函数
- POJ 3280 Cheapest Palindrome(DP 回文变形)
- wget一个小技巧
- 打印出最后执行的mysql 语句
- 优化C/C++代码的小技巧(转)
- virtualbox中实施ASM扩容实施记录
- [bzoj1601]灌水_kruskal
- 对mybatis的Handler 从使用角度介绍
- IntentService解析
- Swift5 语言指南(十五) 继承
- Leetcode: Binary Tree Postorder Transversal
- [转]python与numpy基础
- JMeter学习笔记(六)-负载与监听