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中setTimeout()的用法详解
Apr 14 Javascript
jquery等宽输出文字插件使用介绍
Sep 18 Javascript
javascript特殊用法示例介绍
Nov 29 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
Oct 16 Javascript
js控制文本框输入的字符类型方法汇总
Jun 19 Javascript
js实现统计字符串中特定字符出现个数的方法
Aug 02 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
VUE element-ui 写个复用Table组件的示例代码
Nov 18 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
Apr 22 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
Apr 02 Javascript
js实现全选和全不选
Jul 28 Javascript
vue 项目软键盘回车触发搜索事件
Sep 09 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图片验证码代码
2008/03/27 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
自己的js工具 Cookie 封装
2009/08/21 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
用console.table()调试javascript
2014/09/04 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
浅谈python函数之作用域(python3.5)
2017/10/27 Python
python3.7 的新特性详解
2019/07/25 Python
Python实现微信机器人的方法
2019/09/06 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
北京华建集团SQL面试题
2014/06/03 面试题
农行实习自我鉴定
2013/09/22 职场文书
读书活动总结
2014/04/28 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android