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+canvas实现图片裁剪
Jan 30 Javascript
BootStrap智能表单demo示例详解
Jun 13 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
Aug 16 Javascript
Windows下Node.js安装及环境配置方法
Sep 18 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
Sep 20 Javascript
Vue项目引进ElementUI组件的方法
Nov 11 Javascript
了解Javascript中函数作为对象的魅力
Jun 19 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 Javascript
Node.js API详解之 Error模块用法实例分析
May 14 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的autoload自动加载机制使用说明
2010/12/28 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
详解php协程知识点
2018/09/21 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
详解Python 循环嵌套
2020/07/09 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
中考标语大全
2014/06/05 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
孔庙导游词
2015/02/04 职场文书
个人自荐书范文
2015/03/09 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
python区块链持久化和命令行接口实现简版
2022/05/25 Python