每天一篇javascript学习小结(Function对象)

小编两天都没有更新文章了,小伙伴们是不是等着急了,今天开始再继续我们的《每天一篇javascript学习小结》系列文章,希望大家继续关注。

1、Function 函数调用(类似call方法

function add10(num){ return num + 10; } var result1 = callSomeFunction(add10,10);//<a href="https://www.f2er.com/tag/diaoyong/" target="_blank" class="keywords">调用</a>add10 把参数10传给add10 alert(result1); //20 function getGreeting(name){ return "Hello," + name; } var result2 = callSomeFunction(getGreeting,"Nicholas"); alert(result2); //Hello,Nicholas

2、函数返回函数

return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if (value1 < value2){ return -1; } else if (value1 > value2){ return 1; } else { return 0; } }; } var data = [{name: "Zachary",age: 28},{name: "Nicholas",age: 29}]; data.sort(createComparisonFunction("name"));//sort<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>接收一个<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>作为排序的参考,<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>createComparisonFuntion返回了一个匿名的排序<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a> alert(data[0].name); //Nicholas data.sort(createComparisonFunction("age")); alert(data[0].name); //Zachary

3、apply()方法使用

function callSum1(num1,num2){ return sum.apply(this,arguments);//sum<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>请求把callSum1的指针传给自己,并作计算,此时的this指向callSum1 } function callSum2(num1,[num1,num2]); } alert(callSum1(10,10)); //20 alert(callSum2(10,10)); //20

4、函数Arguments Caller使用

function inner(){ alert(inner.caller); } outer();

caller

//返回一个对函数的引用,该函数调用了当前函数

5、arguments.callee.caller

函数体本身,arguments.callee.caller就是函数体的调用函数体 } outer();

function factorial(num){
if (num <= 1) {
return 1;
} else {
return num * arguments.callee(num-1)//callee当前函数的引用即factorial函数本身的函数
}
}

var trueFactorial = factorial;

factorial = function(){
  return 0;
};

alert(trueFactorial(5));  //120
alert(factorial(5));    //0

6、Funtion bind()方法

function sayColor(){ alert(this.color); } var objectSayColor = sayColor.bind(o); objectSayColor(); //blue /* bind主要是为了改变<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>内部的this指向,这个是在ECMA5以后加入的,所以IE8一下的浏览器<a href="https://www.f2er.com/tag/buzhichi/" target="_blank" class="keywords">不支持</a> bind<a href="https://www.f2er.com/tag/fangfa/" target="_blank" class="keywords">方法</a>会创建一个新<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>,称为绑定<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>.当<a href="https://www.f2er.com/tag/diaoyong/" target="_blank" class="keywords">调用</a>这个绑定<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>时,绑定<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>会以创建它时传入bind<a href="https://www.f2er.com/tag/fangfa/" target="_blank" class="keywords">方法</a>的第一个参数作为this,传入bind<a href="https://www.f2er.com/tag/fangfa/" target="_blank" class="keywords">方法</a>的第二个以及以后的参数<a href="https://www.f2er.com/tag/jiashang/" target="_blank" class="keywords">加上</a>绑定<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>运行时本身的参数按照顺序作为原<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>的参数来<a href="https://www.f2er.com/tag/diaoyong/" target="_blank" class="keywords">调用</a>原<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>. */

7、Function call()方法

function sayColor(){ alert(this.color); } sayColor(); //red sayColor.call(this); //red 此时this指向window sayColor.call(window); //red 同上 sayColor.call(o); //blue 此时sayColor的指针指向o

function sum(num1,num2){
return num1 + num2;
}

function callSum(num1,num2){
  return sum.call(this,num1,num2);
}

alert(callSum(10,10));  //20

8、函数长度length

function sum(num1,num2){ return num1 + num2; } function sayHi(){ alert("hi"); } alert(sayName.length); //1 alert(sum.length); //2 alert(sayHi.length); //0 //实际返回的是<a href="https://www.f2er.com/tag/hanshu/" target="_blank" class="keywords">函数</a>的参数的长度

以上就是今天的javascript学习小结,之后每天还会继续更新,希望大家继续关注。

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ &quot;TOC&quot; 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...