【澳门葡京】javascript学习笔记,函数属性和方法

浅谈javascript 函数属性和章程,浅谈javascript

        各个函数都包罗八个属性:length 和 prototype
        length:当前函数希望接受的命名参数的个数
        prototype:是保存他们全部实力方法的真的所在

复制代码 代码如下:

        function sayName(name) {
            alert(name);
        }
        function sum(num1, num2) {
            return num1 + num2;
        }
        function sayHi() {
            alert(“hi”);
        }
        alert(sayName.length);//1 参数个数贰个
        alert(sum.length);//2 参数个数2个
        alert(sayHi.length);//0 未有参数

        每一个函数都带有七个非承袭而来的艺术:apply() 和 call()
       
这多个法子都以在特定的功能域中调用函数,实际上等于设置函数体内this对象的值
       
首先apply()接受三个参数:七个是函数运营的功能域,另二个参数数组(能够是数组实例也足以是arguments对象)

复制代码 代码如下:

 
 function sum(num1, num2) {
            return num1 + num2;
        }
        function callSum1(num1, num2) {
            return sum.apply(this, arguments);//传入arguments对象
        }
        function callSum2(num1, num2) {
            return sum.apply(this, [num1, num2]);
        }
        alert(callSum1(10, 10));//20
        alert(callSum2(10, 20));//30

       
其次,call方法第多个参数未有成形,变化的是任何的参数都以传递参数,传递给函数的参数需求每种列举出来

复制代码 代码如下:

 
 function sum(num1, num2) {
            return num1 + num2;
        }
        function callSum(num1, num2) {
【澳门葡京】javascript学习笔记,函数属性和方法。            return sum.call(this, num1, num2);
        }
        alert(callSum(10, 200));

       
至于使用哪个方法更利于,完全在于你的心愿。若无参数,用哪些都同样。
        然则,apply和call方法的产出相对不是只是为了什么去船体参数。
        它们确实的用武之地在于扩充函数赖以运营的功能域。

复制代码 代码如下:

        window.color = “red”;
        var o = {color: “blue”};
        function sayColor() {
            alert(this.color);
        }
        sayColor();//red
        sayColor.call(this);//red
        sayColor.call(window);//red
        sayColor.call(o);//blue

       
使用apply和call来扩充功能域的最大的好处正是无需与艺术有任何的耦合关系。

        ECMAScript5
还定义了叁个情势:bind()。这么些方法会创造二个函数的实例,其this值会被绑定到传给bind函数的值

复制代码 代码如下:

 
 window.color = “red”;
        var o = {color: “blue”};
        function sayColor() {
            alert(this.color);
        }
        var bindFun = sayColor.bind(o);
        bindFun();//blue

上述正是本文的整体内容,希望小同伙们能够喜欢。

函数属性和艺术,浅谈javascript
每一种函数都富含两本性子:length 和 prototype
length:当前函数希望接受的命名参数的个数 prototype:…

        种种函数都带有七个属性:length 和 prototype
        length:当前函数希望接受的命名参数的个数
        prototype:是保留他们全体实力方法的真正所在

1.函数中间属性 arguments
arguments用来保存函数的参数,arguments.callee指向具备arguments对象的函数

1.函数中间属性 arguments
arguments用来保存函数的参数,arguments.callee指向拥有arguments对象的函数

复制代码 代码如下:

复制代码 代码如下:

 1 //阶乘
 2 function factorial(num) {
 3     if (num <= 1) {
 4         return 1;
 5     } else {
 6         return num*arguments.callee(num-1);   
//用agreements.callee代替
 7     }
 8 }
 9
10 var trueFactorial = factorial;
11 factorial = function {
12     return 0;
13 }
14 alert(trueFactorial(5));     //20
15 alert(factorial(5));        //0
2.函数的属性和措施
length属性,表示函数参数的个数

        function sayName(name) {
            alert(name);
        }
        function sum(num1, num2) {
            return num1 + num2;
        }
        function sayHi() {
            alert(“hi”);
        }
        alert(sayName.length);//1 参数个数叁个
        alert(sum.length);//2 参数个数2个
        alert(sayHi.length);//0 未有参数

//阶乘
function factorial(num) {
if (num <= 1) {
return 1;
} else {
return num*arguments.callee(num-1); //用agreements.callee代替
}
}

  1. apply()和call()方法
    apply()和call()方法的机能是传递参数或增加函数的作用域

        各种函数都包蕴多个非承袭而来的办法:apply() 和 call()
       
那多个章程都以在特定的成效域中调用函数,实际上等于设置函数体内this对象的值
       
首先apply()接受多少个参数:叁个是函数运转的功效域,另叁个参数数组(可以是数组实例也得以是arguments对象)

var trueFactorial = factorial;
澳门葡京,factorial = function {
return 0;
}
alert(trueFactorial(5)); //20
alert(factorial(5)); //0

 1 //传递参数
 2 function sum(num1,num2) {
 3     return num1+num2;
 4 }
 5 function callSum(num1,num2) {
 6     return sum.call(this,num1,num2);       
//第二个参数this,前面列举全体参数
 7 }
 8 alert(callSum(10,10));        //20
 9
10 function calSum1(num1,num2) {
11     return sum.apply(this,arguments);       
//第贰个参数this,第贰个参数arguments
12 }
13 function calSum2(num1,num2) {
14     return sum.apply(this,[num1,num2]);       
//第一个参数this,第一个参数是参数数组
15 }
16 alert(callSum1(10,10));        //20
17 alert(callSum2(10,10));        //20

复制代码 代码如下:

2.函数的品质和办法
length属性,表示函数参数的个数

 1 //改换函数成效域
 2 window.color = “red”;
 3 var o = { color:”blue”};
 4 function sayColor() {
 5     alert(this.color);
 6 }
 7 sayColor();        //red
 8 sayColor.call(this);        //red
 9 sayColor.call(window);//red
10 sayColor.call(o);        //blue

 
 function sum(num1, num2) {
            return num1 + num2;
        }
        function callSum1(num1, num2) {
            return sum.apply(this, arguments);//传入arguments对象
        }
        function callSum2(num1, num2) {
            return sum.apply(this, [num1, num2]);
        }
        alert(callSum1(10, 10));//20
        alert(callSum2(10, 20));//30

  1. apply()和call()方法
    apply()和call()方法的效劳是传递参数或扩展函数的作用域

 

       
其次,call方法第多个参数未有调换,变化的是别的的参数都以传递参数,传递给函数的参数必要各种列举出来

复制代码 代码如下:

 

复制代码 代码如下:

//传递参数
function sum(num1,num2) {
return num1+num2;
}
function callSum(num1,num2) {
return sum.call(this,num1,num2); //第一个参数this,后边列举全体参数
}
alert(callSum(10,10)); //20

摘自 晴天漫步

 
 function sum(num1, num2) {
            return num1 + num2;
        }
        function callSum(num1, num2) {
            return sum.call(this, num1, num2);
        }
        alert(callSum(10, 200));

function calSum1(num1,num2) {
return sum.apply(this,arguments); //第一个参数this,首个参数arguments
}
function calSum2(num1,num2) {
return sum.apply(this,[num1,num2]);
//第贰个参数this,第三个参数是参数数组
}
alert(callSum1(10,10)); //20
alert(callSum2(10,10)); //20

arguments
arguments用来保存函数的参数,arguments.callee指向具有arguments对象的函数
1 //阶乘 2 function factorial(num) { 3 if (num = 1) { 4 r…

       
至于使用哪个方法更有益于,完全取决于你的意思。若无参数,用哪个都一样。
        可是,apply和call方法的产出相对不是只是为了什么去船体参数。
        它们确实的用武之地在于扩展函数赖以运维的功效域。

复制代码 代码如下:

复制代码 代码如下:

//更换函数功用域
window.color = “red”;
var o = { color:”blue”};
function sayColor() {
alert(this.color);
}
sayColor(); //red
sayColor.call(this); //red
sayColor.call(window);//red
sayColor.call(o); //blue

        window.color = “red”;
        var o = {color: “blue”};
        function sayColor() {
            alert(this.color);
        }
        sayColor();//red
        sayColor.call(this);//red
        sayColor.call(window);//red
        sayColor.call(o);//blue

arguments
arguments用来保存函数的参数,arguments.callee指向具备arguments对象的函数
复制代码 代码如下: //阶乘 function factorial(num)…

       
使用apply和call来扩充功效域的最大的利润正是不要求与情势有其他的耦合关系。

        ECMAScript5
还定义了一个形式:bind()。这些方法会创立多个函数的实例,其this值会被绑定到传给bind函数的值

复制代码 代码如下:

 
 window.color = “red”;
        var o = {color: “blue”};
        function sayColor() {
            alert(this.color);
        }
        var bindFun = sayColor.bind(o);
        bindFun();//blue

上述就是本文的全部内容,希望小伙伴们能够喜欢。

你可能感兴趣的文章:

  • javascript时区函数介绍
  • JavaScript中valueOf函数与toString方法深切掌握
  • JavaScript回调(callback)函数概念自己了解及示范
  • javascript
    终止函数推行操作
  • javascript获得函数名称、函数参数、对象属性名称的代码实例
  • 详谈JavaScript
    无名氏函数及闭包
  • Javascript基础教程之函数对象和个性
  • 浅谈javascript
    函数内部属性
  • JavaScript学习笔记之JS函数

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website