浅谈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 相关文章推荐
使用dynatrace-ajax跟踪JavaScript的性能
Apr 12 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
用原生js做个简单的滑动效果的回到顶部
Oct 15 Javascript
jQuery带箭头提示框tooltips插件集锦
Nov 17 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
Jan 26 Javascript
谈谈JavaScript的New关键字
Aug 26 Javascript
Bootstrap popover用法详解
Dec 22 Javascript
canvas实现环形进度条效果
Mar 23 Javascript
微信小程序新增的拖动组件movable-view使用教程
May 20 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 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 Google的translate API代码
2008/12/10 PHP
学习php分页代码实例
2013/10/24 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
jquery 3D球状导航的文章分类
2010/07/06 Javascript
JQuery live函数
2010/12/24 Javascript
浅说js变量
2011/05/25 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
python中xrange和range的区别
2014/05/13 Python
Python中使用item()方法遍历字典的例子
2014/08/26 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
优秀部门获奖感言
2014/02/14 职场文书
农村门前三包责任书
2014/07/25 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
高考学习决心书
2015/02/04 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL