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中的noscript元素属性位置及作用介绍
Apr 11 Javascript
关于ExtJS4.1:快捷键支持的问题
Apr 24 Javascript
javascript使用onclick事件改变选中行的颜色
Dec 30 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
JavaScript程序中实现继承特性的方式总结
Jun 24 Javascript
使用jsonp实现跨域获取数据实例讲解
Dec 25 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
jQuery中库的引用方法
Jan 06 jQuery
使用Angular CLI生成路由的方法
Mar 24 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 Javascript
Webpack5正式发布,有哪些新特性
Oct 12 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中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
Angularjs 滚动加载更多数据
2016/03/17 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
浅析python中的分片与截断序列
2016/08/09 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
解决pip install psycopg2出错问题
2020/07/09 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
军训心得体会
2013/12/31 职场文书
师德师风自查材料
2014/10/14 职场文书
毕业生评语大全
2015/01/04 职场文书
坎儿井导游词
2015/02/09 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python