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 相关文章推荐
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
JavaScript加强之自定义event事件
Sep 21 Javascript
table insertRow、deleteRow定义和用法总结
May 14 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
Jan 10 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
Aug 08 Javascript
JavaScript创建对象的常用方式总结
Aug 10 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
JS简单表单验证功能完整示例
Jan 26 Javascript
vue离开当前页面触发的函数代码
Sep 01 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
React 源码中的依赖注入方法
2018/11/07 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
2014年高考决心书
2014/03/11 职场文书
会计员岗位职责
2014/03/15 职场文书
工商管理专业自荐信
2014/06/03 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
尊师重教演讲稿
2014/09/04 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL