美文网首页
JavaScript函数(26)

JavaScript函数(26)

作者: PhilongHuynh | 来源:发表于2017-12-26 01:08 被阅读0次

    函数

    • 函数的声明
    • 如何调用函数
    • 什么call stack
    • this 和arguments
    • 作用域
    • 闭包

    函数声明的五种方式

    (1)具名函数:
    function x(输入1,输入2){ return undefined}
    通过console大法可以将x函数输出,虽然console只能输出字符串,但是当console的内容为函数时,会直接调用函数的toString()方法从而实现函数的输出

    return undefined 是系统默认添加,消除不了
    (2)匿名函数
    var x = function (input1,input2){return }
    匿名函数前面必须有变量声明,否则浏览器会报错

    (3)具名函数的另一种表达形式
    var x = function y( return)
    注意这种调用方式就必须是x.toString(),如果是y.toString()就会出现报错
    var x = function y(input1,input2){
     console.log(y)
    }
    //A 函数          B undefined
    //B
    

    (4)window.Function函数
    new Function('x','y','return x+y')

    var n = 1;
    f = new Function('x','y','return x+'+n+'+y')
    f(1,2)  // 4
    

    (5)箭头函数
    i: f=(x,y)=>{return x+y}
    ii: 省略return的写法f=(x,y) => x+y
    iii: 只有一个参数的简单写法:

    f=n =>n*n 
    f(3) 
    //9
    

    五种函数声明的name属性

    function f(){}
    f.name 
    //"f"
    
    var f2 = function(){}
    f2.name
    //"f2"
    
    var f3 = function f4(){}
    f3.name
    //"f4"
    
    var f5 = new Function('x','y','return x+y'}
    f5.name
    //"anonyomous"
    
    f = (x,y)=>{return x+y}
    f.name
    //"f"
    

    如何调用函数

    简单的调用:

    function f(x,y){'x','y','return x+y'} 
    f(1,2)     //调用的实现
    

    阮一峰在介绍函数时是这样说的:

    函数就是一段可以反复调用的代码块,其还可以接受输入不同的参数,不同的参数会返回不同的值

    例如求三角形的面积:

    function 求三角形的面积('width','height'){
      var mianji = (width * height)/2;
      return mianji;
    }
    求三角形的面积(4,5)
    求三角行的面积(5,6)
    //宽是4,高是5时,得出的面积是10
    //宽是5,高是6时,得出的面积是15
    所以随着高和宽的不断变化, 面积都可以实现得出不同的结果  
    

    函数的调用在内存图中的显示:


    通过上图可以得知函数的调用需要call()参与进来
    var f ={}
    f.params = ['x','y']
    f.fbody = 'console.log(1)'
    f.call = function(){
    eval(f.fbody)
    }
    f.call()  //执行这个函数函数体
    // 1
    

    所以通过上述的介绍我们可以简单的知道函数的调用有两种:
    (1)f()
    (2)f.call() //以上上为例f.call()的调用:f.call(undefined , 1, 2)
    第一种为小白写法,第二种虽然操作起来比较麻烦,但是给专门喜欢炫技的老司机使用


    this 和 arguments

    相关文章

      网友评论

          本文标题:JavaScript函数(26)

          本文链接:https://www.haomeiwen.com/subject/omnkgxtx.html