• 函数对象 函数


    把函数看作一个对象,而函数名看作指针,指向该函数,因此有可能多个函数名指向同一个函数
    如下
    function sum(num1, num2){
        return num1 + num2;
    }
    alert(sum(10,10)); //20
    var anotherSum = sum; alert(anotherSum(10,10)); //20
    sum = null; alert(anotherSum(10,10)); //20
     
    这也解释了为什么javascript函数不能重载
     
    通过function haha()来声明的函数,会在进入运行上下文的时候调用function declaration hoisting,在所有代码执行之前编译,因此即使把声明放在最后面也不会出现unexpected identifier异常,而通过var haha=function来定义的,就必须把声明放在使用之前
     
    arguments.callee指向拥有argument的函数
     
    function1.caller指向调用者,指向当前函数调用者argument.callee.caller
     
    argument.caller返回undefined,区分function1.caller和安全考虑
     
    函数也可以理解为运行在特定上下文的对象,用call和apply能够指定运行上下文
     
    函数的参数通过复制值来运行,而不是指针引用
     
    函数被调用的时候会获得两个特别的变量,this和arguments,函数里面的函数无法直接读取外部函数的this和arguments,除非把外部的缓存起来var that = this;
     
    每个函数都会自动收到两个赠送的参数:this 和 arguments,但是函数内部的函数是无法直接获取到外部函数这两个变量的,需要缓存一下
  • 相关阅读:
    使用BC库解密出现no such provider错误
    使用PyHive操作Hive
    使用Python实现Map Reduce程序
    Mysql问题
    安装Python2.7出现configure: error: no acceptable C compiler found in $PATH错误
    crontab入门
    Linux命令-dd
    Linux命令-cp
    Linux命令-mkdir
    RHEL7.2下netcat工具安装教程
  • 原文地址:https://www.cnblogs.com/chuangweili/p/5165252.html
Copyright © 2020-2023  润新知