zoukankan      html  css  js  c++  java
  • 第七章 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
  • 相关阅读:
    计算机组成原理实验总结
    Matlab图像匹配问题
    局域网实验
    信号量与共享存储区(操作系统实验三)
    路由器配置及IP设置及ping命令使用
    自我介绍是一门学问
    数据库管理系统的维护与管理
    高数讲课教后感
    node Unexpected token import(node 目前默认不支持es6 的模块 import解决方法有2)
    Cookie/Session机制详解
  • 原文地址:https://www.cnblogs.com/jingubang/p/4630377.html
Copyright © 2011-2022 走看看