js中Function引用类型常见有用的方法和属性详解

 更新时间:2019年12月11日 08:03:00   作者:hellozxcv  
在本篇文章里小编给大家整理的是关于js中Function引用类型常见有用的方法和属性知识点,有兴趣的朋友们可以学习下。

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深拷贝的一些踩坑记录

    这篇文章主要给大家介绍了关于JavaScript深拷贝的一些踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • undefined==null引发的两者区别与联系

    undefined==null引发的两者区别与联系

    undefined==null引发的两者区别与联系
    2007-12-12
  • JavaScript显示当然日期和时间即年月日星期和时间

    JavaScript显示当然日期和时间即年月日星期和时间

    使用js显示当然日期和时间在网页中很是常见,方法有很多,不过多说大同小异,下面有个不错的示例,需要的朋友可以感受下
    2013-10-10
  • IOS中safari下的select下拉菜单文字过长不换行的解决方法

    IOS中safari下的select下拉菜单文字过长不换行的解决方法

    今天在项目开发中遇到一个问题safari下的select下拉菜单文字过长不换行问题,最终我用<optgroup>标签解决此问题,下面小编把实现思路分享给大家供大家参考
    2016-09-09
  • js 判断checkbox是否选中的实现代码

    js 判断checkbox是否选中的实现代码

    大家在很多场合也许会遇到判断页面是否有元素选中,下面介绍的是利用js判断是否选中CheckBox的方法。
    2010-11-11
  • JavaScript中var let const的用法有哪些区别

    JavaScript中var let const的用法有哪些区别

    在ES6(ES2015)出现之前,JavaScript中声明变量就只有通过var关键字,函数声明是通过function关键字,而在ES6之后,声明的方式有var、let、const、function、class,本文主要讨论var、let和const之间的区别
    2021-10-10
  • Angular Js文件上传之form-data

    Angular Js文件上传之form-data

    angular-file-upload 是一个基于HTML5技术的文件上传轻量级 AngularJS指令(directive),当浏览器不支持时转为采用 FileAPI polyfill技术实现(基于Flash)。本文主要给大家介绍Angular Js文件上传之form-data,需要的朋友可以参考下
    2015-08-08
  • 一问了解JavaScript中的元数据

    一问了解JavaScript中的元数据

    本文主要介绍了一问了解JavaScript中的元数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • JavaScript实现打字效果的方法

    JavaScript实现打字效果的方法

    这篇文章主要介绍了JavaScript实现打字效果的方法,可实现文字陆续出现的打字效果,涉及javascript时间函数及页面元素获取的相关技巧,需要的朋友可以参考下
    2015-07-07
  • js实现京东秒杀倒计时功能

    js实现京东秒杀倒计时功能

    这篇文章主要为大家详细介绍了js实现京东秒杀倒计时功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论