js中Function引用类型常见有用的方法和属性详解


Posted in Javascript onDecember 11, 2019

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);
}

以上就是本次介绍的全部相关知识点,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
Javascript String对象扩展HTML编码和解码的方法
Jun 02 Javascript
jQuery中:password选择器用法实例
Jan 03 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
理解javascript封装
Feb 23 Javascript
JavaScript数组去重的两种方法推荐
Apr 05 Javascript
BootStrap glyphicons 字体图标实现方法
May 01 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
Vue组件通信之Bus的具体使用
Dec 28 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
jQuery实现验证用户登录
Dec 10 #jQuery
这样回答继承可能面试官更满意
Dec 10 #Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 #jQuery
微信小程序 this.triggerEvent()的具体使用
Dec 10 #Javascript
jQuery实现消息弹出框效果
Dec 10 #jQuery
jQuery实现弹出层效果
Dec 10 #jQuery
javascript实现弹出层效果
Dec 10 #Javascript
You might like
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
js星星评分效果
2014/07/24 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
JavaScript实现切换多张图片
2021/01/27 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
wxPython的安装图文教程(Windows)
2017/12/28 Python
详解python pandas 分组统计的方法
2019/07/30 Python
Python 3 判断2个字典相同
2019/08/06 Python
python next()和iter()函数原理解析
2020/02/07 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
思想品德自我鉴定
2013/10/12 职场文书
学习党课思想汇报
2013/12/29 职场文书
结婚典礼证婚词
2014/01/08 职场文书
党员自我评价2015
2015/03/03 职场文书