浅谈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 相关文章推荐
jquery提示效果实例分析
Nov 25 Javascript
jQuery中:first选择器用法实例
Dec 30 Javascript
jQuery实现友好的轮播图片特效
Jan 12 Javascript
AngularJS基础 ng-csp 指令详解
Aug 01 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
详解JS异步加载的三种方式
Mar 07 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
canvas绘制爱心的几种方法总结(推荐)
Oct 31 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
mpvue将vue项目转换为小程序
Sep 30 Javascript
微信小程序实现左滑修改、删除功能
Oct 19 Javascript
浅谈TypeScript 索引签名的理解
Oct 16 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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
JS 对象介绍
2010/01/20 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
python爬虫headers设置后无效的解决方法
2017/10/21 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python Shapely使用指南详解
2020/02/18 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
详解Python IO编程
2020/07/24 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
采购求职信
2014/03/17 职场文书
年终晚会主持词
2014/03/25 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
六年级学生期末评语
2014/12/26 职场文书
党员检讨书范文
2014/12/27 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
学校运动会简讯
2015/07/20 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书