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的10个怪癖和秘密分享
Aug 28 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
Sep 22 Javascript
跟我学习javascript的浮点数精度
Nov 16 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
JavaScript编写的网页小游戏,很给力
Aug 18 Javascript
Vue.js项目模板搭建图文教程
Sep 20 Javascript
angular2实现统一的http请求头方法
Aug 13 Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 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
用mysql内存表来代替php session的类
2009/02/01 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
php批量删除操作代码分享
2017/02/26 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
学python爬虫能做什么
2020/07/29 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
优秀大学生求职自荐信范文
2014/04/19 职场文书
音乐教师个人总结
2015/02/06 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL