• 第七章 function


           在javaScript中,函数有两种,一种是普通函数,一种是构造函数,然而本质上只有一种,构造函数只不过是我们为了区分功能自创的说法。构造函数我们约定函数的第一个字母大写。这里说一说Function类型,也就是说好所Function的实例:函数。 函数就是对象,还是类。既可以把它当作一个普通对象用,也可以通过new方法来有它创造一个实例。

    • 定义函数有两种方法,一种是声明方式定义,一种是表达式方式定义。这两个的区别在于函数的定义是在什么时候,如果函数的定义在表达式里,那么我们就说是表达式方式定义的。
    • 函数没有重载,同名的新函数会覆盖同名的旧函数。
    • 函数声明在js里,即使在调用语句之后也是可以的,这成为声明提升,这个特性针对变量也是一样的。
    • 函数可以做为参数和返回值存在。
    • 函数内部有两个特殊对象:this和arguments
    • 函数内部有两个特殊属性:callee,是一个指针,指向函数本身。caller:也是一个指针,指向调用当前函数的函数。a调用b,那么b里边的arguments.caller就指向a。
    function a() {
        b();  //调用b
    }
    
    function b() {
        alert(b.caller);  //a.caller就指向a,相当于alert(a)
        alert(a);
    }
    a();
    • 函数有两个特殊的方法:apply()和call()。这两个函数都有一个作用,就是在特定的作用域内调用函数,使被调用的函数的this值变为我们设置的this值,这样就可以扩充函数运行的作用域,而且低耦合!ECMAScript5定义了一个bind()方法,也是差不多的效果。
    function sum(num1,num2) {
        alert(num1+num2);
    }
    
    function sum1(num1,num2) {
        sum.apply(this,arguments);   //调用了sum函数,并且把sum1的this和arguments对象做为参数,也就是把sum的this变成了sum1的this,sum的arguments对象变成了sum1的arguments对象。
    }
    
    sum1(1,2);  //3
  • 相关阅读:
    21.Android之SQLite数据库学习
    20.(转)Android的样式(Style)和主题(Theme)
    19.Android之文件存储方法学习
    18.Android之SharedPreferences数据存储学习
    17.(转) Android之四大基本组件介绍与生命周期
    16.(转) Android之Support v4、v7、v13的区别和应用场景
    15.Android中LinearLayout布局一些小记录
    14.Android之Layout布局学习
    13. (转) Android一些布局属性详解
    12.Android之Tabhost组件学习
  • 原文地址:https://www.cnblogs.com/jingubang/p/4630377.html
Copyright © 2020-2023  润新知