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 相关文章推荐
Js base64 加密解密介绍
Oct 11 Javascript
javascript按位非运算符的使用方法
Nov 14 Javascript
从数组中随机取x条不重复数据的JS代码
Dec 24 Javascript
js/jquery获取文本框输入焦点的方法
Mar 04 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
Nov 30 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
jQuery实现元素的插入
Feb 27 Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
JSON基本语法及与JavaScript的异同实例分析
Jan 04 Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 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 中使用随机数的三个步骤
2006/10/09 PHP
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
Smarty模板快速入门
2007/01/04 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
Yii框架form表单用法实例
2014/12/04 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python切片知识解析
2016/03/06 Python
Python玩转Excel的读写改实例
2019/02/22 Python
Django中URL的参数传递的实现
2019/08/04 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python多进程并发demo实例解析
2019/12/13 Python
详解Python中的路径问题
2020/09/02 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
雷锋式好少年事迹材料
2014/08/17 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
军训新闻稿范文
2015/07/17 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang