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 相关文章推荐
srcElement表格样式
Sep 03 Javascript
javascript中的new使用
Mar 20 Javascript
基于Jquery的简单图片切换效果
Jan 06 Javascript
JS写的贪吃蛇游戏(个人练习)
Jul 08 Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
Mar 26 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
Web前端框架bootstrap实战【第一次接触使用】
Dec 28 Javascript
深入理解Vue2.x的虚拟DOM diff原理
Sep 27 Javascript
详解webpack自定义loader初探
Aug 29 Javascript
js实现动态增加文件域表单功能
Oct 22 Javascript
JavaScript实现点击切换功能
Jan 27 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在线打包程序源码
2008/07/27 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Backbone.js中的集合详解
2015/01/14 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Django Highcharts制作图表
2016/08/27 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
python tkinter实现连连看游戏
2020/11/16 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
高中生的学习总结自我鉴定
2013/10/26 职场文书
会计应届生的自荐信
2013/12/13 职场文书
远程教育心得体会
2014/01/03 职场文书
股权转让意向书
2014/04/01 职场文书
家长对老师的评语
2014/04/18 职场文书
优秀教师演讲稿
2014/05/06 职场文书
小学重阳节活动总结
2015/03/24 职场文书