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 相关文章推荐
CSS和Javascript简单复习资料
Jun 29 Javascript
jquery 新建的元素事件绑定问题解决方案
Jun 12 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
基于Jquery代码实现手风琴菜单
Nov 19 Javascript
常用的Javascript设计模式小结
Dec 09 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
微信小程序-可移动菜单的实现过程详解
Jun 24 Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
Angular短信模板校验代码
Sep 23 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 SQL Injection with MySQL
2011/02/27 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
Python序列操作之进阶篇
2016/12/08 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python地图绘制实操详解
2019/03/04 Python
Python匿名函数及应用示例
2019/04/09 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
高三英语教学反思
2014/01/13 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
出国签证在职证明范本
2014/11/24 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
MySql数据库触发器使用教程
2022/06/01 MySQL