浅谈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代码放在head和body中的区别分析
Dec 01 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
May 11 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
在Node.js应用中使用Redis的方法简介
Jun 24 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 Javascript
js精准的倒计时函数分享
Jun 29 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
实时监控input框,实现输入框与下拉框联动的实例
Jan 23 Javascript
详解vuex的简单使用
Mar 12 Javascript
JavaScrip数组去重操作实例小结
Jun 20 Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 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
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
2016/06/20 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
Python生成随机MAC地址
2015/03/10 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
python可视化实现KNN算法
2019/10/16 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
财务出纳岗位职责
2014/02/03 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
工作感言一句话
2015/08/01 职场文书