js中Function引用类型中一些常见且有用的方法和属性
2024-10-21 11:28:34
Function类型
函数由于是Function类型的一个实例,所以函数名就是一个指向函数对象的指针,不会与某个函数死死的连接在一起,这也导致了js中没有真正的重载,但好处是,函数对象可以作为另一个函数的参数或是返回值;
访问一个函数对象的指针而不是执行函数本身不能加括号
var func = new Function("x", "y", "return x + y");// 构造函数来实例化一个Function类型, 但不推荐使用
function func(x, y){
return x + y;
}// 函数声明 js引擎会将所有的函数声明提升到顶部
var func = function (x, y){ return x + y };// 函数表达式 变量的赋值, 变量func保存着 function(x, y){ return x + y} 这个对象
Function类型中,有两个特殊的对象:arguments和this , 前者里面有传入函数中所有的参数,还有一个callee属性,这是个指针指向拥有这个属性的Function实例;而this这个指针指向执行环境,也就是Global类型的一个实例. 在浏览器中是一个窗口.
function b(){
console.log(arguments.callee);
}
Function类型的属性和方法
length // Funciton实例期望接收形式参数的个数
prototype //
apply();// 非继承的方法
// apply(Function实例运行的作用域:this, Array实例或arguments)
call();// 非继承的方法
// call(Function实例运行的作用域:this, arg1, arg2, ...)
//
bind( X );// 将Function的实例的this指向 对象 X
除此之外,Function类型中还有一个特殊的属性:caller,这是个指针,在严格模式下不能对这个属性赋值.
Function类型一个实例a调用了Function类型的另一个实例b, 那么实例b中的caller属性就会指向实例a;
function a(){
b();
}
function b(){
console.log(arguments.callee.caller);
}
最新文章
- C#测试题
- Redis——学习之路一(初识redis)
- angularJS 杂
- 架构系列:ASP.NET 项目结构搭建
- 借助magicwindow sdk plugin快速集成sdk
- 菜鸟学Linux命令:tail命令 查看日志
- ES6入门之Iterator和for...of
- Android:DES加密
- 开启MYSQL远程连接权限
- 动态规划 HDU 1176
- Hadoop 1、在虚拟机上进行 HDFS 安装
- Android - JNI静态(static)载入OpenCV
- OC版二分查找
- 移动硬盘/U盘装Windows 7旗舰版(VHD版)
- random模块函数分析(一)
- NumPy 超详细教程(2):数据类型
- 转载 Flask中客户端 - 服务器 - web应用程序 是如何处理request生成response的?
- scrapy-redis(调度器Scheduler源码分析)
- postman 做接口测试之学习笔记
- 流媒体技术学习笔记之(二)RTMP和HLS分发服务器nginx.conmf配置文件(解决了,只能播放RTMP流而不能够播放HLS流的原因)