浅谈javascript 函数内部属性


Posted in Javascript onJanuary 21, 2015

        在函数内部有两个特殊的属性:arguments 和 this。arguments是一个类数组对象,包含传入的所有参数,
        但是这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。

        请看经典的阶乘函数例子:

        function Factorial(num) {

            if (num <= 1) {

                return 1;

            } else {

                return num * Factorial(num - 1);

            }

        }

        function Factorial(num) {

            if (num <= 1) {

                return 1;

            } else {

                return num * arguments.callee(num - 1);

            }

        }

        使用第一种方式是没有错的,但是耦合性太高,不太好,函数名改变之后,内部的函数名也要改变
        第二种方式就是低耦合的做法,无论函数名怎么改变都不会影响函数执行。

        this引用的是函数据以执行的环境对象,或者也可以说是this值

        window.color = "red";

        var o = {color: "blue"};

        function sayColor() {

            alert(this.color);

        }

        sayColor();//red

        o.sayColor = sayColor;

        o.sayColor();//blue

        caller属性,保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,它的值为Null

 function outer() {

            innter();

        }

        function innter(){

            //alert(innter.caller);//耦合性太高

            alert(arguments.callee.caller);

        }

        outer();

以上就是javascript函数内部属性的全部内容了,希望小伙伴们能够喜欢

Javascript 相关文章推荐
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
Javascript弹出窗口的各种方法总结
Nov 11 Javascript
谷歌地图打不开的解决办法
Aug 07 Javascript
js调试工具Console命令详解
Oct 21 Javascript
JavaScript学习笔记整理_关于表达式和语句
Sep 19 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Dec 15 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
ES6中class类用法实例浅析
Apr 06 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 Javascript
AngularJS上传文件的示例代码
Nov 10 Javascript
javascript网页随机点名实现过程解析
Oct 15 Javascript
浅谈javascript 函数属性和方法
Jan 21 #Javascript
html的DOM中document对象images集合用法实例
Jan 21 #Javascript
浅谈javascript面向对象程序设计
Jan 21 #Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 #Javascript
封装好的一个万能检测表单的方法
Jan 21 #Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 #Javascript
JS简单计算器实例
Jan 20 #Javascript
You might like
PHP实时显示输出
2008/10/02 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
php递归函数怎么用才有效
2018/02/24 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python实现人人网登录示例分享
2014/01/19 Python
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Python通过socketserver处理多个链接
2020/03/18 Python
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
网络安全方面的面试题
2015/11/04 面试题
Python的两道面试题
2013/06/29 面试题
婚庆公司计划书
2014/09/15 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
文艺演出主持词
2015/07/01 职场文书
三八节活动主持词
2015/07/04 职场文书