浅谈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 相关文章推荐
xml分页+ajax请求数据源+dom取结果实例代码
Oct 31 Javascript
关于图片按比例自适应缩放的js代码
Oct 30 Javascript
Javascript中克隆一个数组的实现代码
Dec 06 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
深入浅析JavaScript面向对象和原型函数
Feb 06 Javascript
canvas实现钟表效果
Feb 13 Javascript
基于JavaScript实现类名的添加与移除
Apr 23 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
Jul 14 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
vue2.0 父组件给子组件传递数据的方法
Jan 15 Javascript
JS实现简单省市二级联动
Nov 27 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获取汉字拼音首字母的方法
2015/10/21 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
JQuery 常用操作代码
2010/03/14 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
Python实现一个简单的MySQL类
2015/01/07 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python切片操作实例分析
2018/03/16 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
django 单表操作实例详解
2019/07/30 Python
Python 使用type来定义类的实现
2019/11/19 Python
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
北京振戎融通Java面试题
2015/09/03 面试题
销售总监工作职责
2013/11/21 职场文书
梅花魂教学反思
2014/04/25 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
2015年暑假工作总结
2015/07/13 职场文书
信息简报范文
2015/07/21 职场文书
《植树问题》教学反思
2016/03/03 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
java解析XML详解
2021/07/09 Java/Android
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers