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 相关文章推荐
jQuery 表单验证扩展代码(一)
Oct 11 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 Javascript
react native与webview通信的示例代码
Sep 25 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
Feb 05 Javascript
vue 不使用select实现下拉框功能(推荐)
May 17 Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
webpack HappyPack实战详解
Oct 08 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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
快速了解Python相对导入
2018/01/12 Python
python使用tkinter实现简单计算器
2018/01/30 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
python获取url的返回信息方法
2018/12/17 Python
Python中的self用法详解
2019/08/06 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Python timeit模块原理及使用方法
2020/10/10 Python
德国机车企业:FC-Moto
2017/10/27 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
建龙钢铁面试总结
2014/04/15 面试题
机械系大学毕业生推荐信
2013/11/27 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
求职简历自我评价范例
2014/03/12 职场文书
搞笑征婚广告词
2014/03/17 职场文书
新闻编辑求职信
2014/04/09 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
2015年成本会计工作总结
2015/10/14 职场文书