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的event详解。
Sep 06 Javascript
javascript 添加和移除函数的通用方法
Oct 20 Javascript
javascript小数四舍五入多种方法实现
Dec 23 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
JavaScript 基础函数_深入剖析变量和作用域
May 18 Javascript
js enter键激发事件实例代码
Aug 17 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
vue移动端使用canvas签名的实现
Jan 15 Javascript
JavaScript布尔运算符原理使用解析
May 06 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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
java必学必会之static关键字
2015/12/03 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
一文总结学习Python的14张思维导图
2017/10/17 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python实现简单的tcp 文件下载
2020/09/16 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
《三个小伙伴》教学反思
2014/04/11 职场文书
英语故事演讲稿
2014/04/29 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
学校教师读书活动总结
2014/07/08 职场文书
网络营销实训总结
2015/08/03 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
python xlwt模块的使用解析
2021/04/13 Python
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL