博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数对象 函数
阅读量:5239 次
发布时间:2019-06-14

本文共 816 字,大约阅读时间需要 2 分钟。

把函数看作一个对象,而函数名看作指针,指向该函数,因此有可能多个函数名指向同一个函数
如下
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,但是函数内部的函数是无法直接获取到外部函数这两个变量的,需要缓存一下

转载于:https://www.cnblogs.com/chuangweili/p/5165252.html

你可能感兴趣的文章
企业QQ 增加在线交谈链接
查看>>
也说new
查看>>
Windows 8本地化多语言支持
查看>>
Oracle——多表查询
查看>>
POJ 1321
查看>>
常用设计原则(精华篇)
查看>>
java 基础 -- javassist
查看>>
java框架-15spring4_mybatis04-EHcahce-logback
查看>>
java 前端--event 事件
查看>>
CSS+Js在段落文字最后自动加入隐藏文字
查看>>
poj1417(种类并查集+dp)
查看>>
CCI_Q1.1
查看>>
JavaScript设计模式与开发实践pdf
查看>>
贝叶斯思维 统计建模的Python学习法pdf
查看>>
Visual FoxPro权威指南pdf
查看>>
HDU 2561 第二小整数
查看>>
这两天遇到iphone使用app store下载免费软件,必须验证付款信息才能购物是怎么回事???...
查看>>
Linux下中间人攻击利用框架bettercap测试
查看>>
ecshop hash登录 + wordpress mysql盲注字段
查看>>
接口和多态
查看>>