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

前端之家收集整理的这篇文章主要介绍了每天一篇javascript学习小结(Function对象)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

function add10(num){ return num + 10; } var result1 = callSomeFunction(add10,10);//<a href="/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 @H_<a href="/tag/404/" target="_blank" class="keywords">404</a>_12@ value2){ return 1; } else { return 0; } }; } var data = [{name: "Zachary",age: 28},{name: "Nicholas",age: 29}]; data.sort(createComparisonFunction("name"));//sort<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>接收一个<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>作为排序的参考,<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>createComparisonFuntion返回了一个匿名的排序<a href="/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="/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="/tag/hanshu/" target="_blank" class="keywords">函数</a>内部的this指向,这个是在ECMA5以后加入的,所以IE8一下的浏览器<a href="/tag/buzhichi/" target="_blank" class="keywords">不支持</a> bind<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>会创建一个新<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>,称为绑定<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>.当<a href="/tag/diaoyong/" target="_blank" class="keywords">调用</a>这个绑定<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>时,绑定<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>会以创建它时传入bind<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>的第一个参数作为this,传入bind<a href="/tag/fangfa/" target="_blank" class="keywords">方法</a>的第二个以及以后的参数<a href="/tag/jiashang/" target="_blank" class="keywords">加上</a>绑定<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>运行时本身的参数按照顺序作为原<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>的参数来<a href="/tag/diaoyong/" target="_blank" class="keywords">调用</a>原<a href="/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="/tag/hanshu/" target="_blank" class="keywords">函数</a>的参数的长度

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

猜你在找的JavaScript相关文章