• JS函数学习


    一:函数

    1.声明

    function functionName(parameters) {
    要执行的代码
    }
    

    举例:

    function myFunction(a, b) {
     return a * b;
    }
    

    2.自调用函数

    函数表达式可以作为“自调用”。

    自调用表达式是自动被调用(开始)的,在不进行调用的情况下。

    函数表达式会自动执行,假如表达式后面跟着 ()。

    您无法对函数声明进行自调用。

    您需要在函数周围添加括号,以指示它是一个函数表达式:

    实例

    (function () {
    var x = "Hello!!";      //我会调用我自己
    })();
    

    3.函数可用作值

    JavaScript 函数可被用作值:

    实例

    function myFunction(a, b) {
    return a * b;
    }
    var x = myFunction(4, 3);
    

    4.JavaScript 函数可用在表达式中:

    实例

    function myFunction(a, b) {
    return a * b;
    }
    var x = myFunction(4, 3) * 2;
    

    5.函数是对象

    JavaScript 中的 typeof 运算符会为函数返回 "function"。
    但是最好是把 JavaScript 函数描述为对象。
    JavaScript 函数都有属性和方法。
    arguments.length 会返回函数被调用时收到的参数数目:
    toString() 方法以字符串返回函数:

    二:函数参数

    functionName(parameter1, parameter2, parameter3) {
    要执行的代码
    }
    

    函数参数(parameter)指的是在函数定义中列出的名称。
    函数参数(argument)指的是传递到函数或由函数接收到的真实值。
    如果函数调用的参数太多(超过声明),则可以使用 arguments 对象来达到这些参数。
    arguments 对象
    JavaScript 函数有一个名为 arguments 对象的内置对象。
    arguments 对象包含函数调用时使用的参数数组。

    实例

    x = findMax(1, 123, 500, 115, 44, 88);
    function findMax() {
    var i;
    var max = -Infinity;
    for (i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
    }
    

    三:函数调用

    1.以函数形式调用函数

    实例

    function myFunction(a, b) {
    return a * b;
    }
    myFunction(10, 2);  
    

    2.作为方法来调用函数

    在 JavaScript 中,您可以把函数定义为对象方法。

    下面的例子创建了一个对象(myObject),带有两个属性(firstName 和 lastName),以及一个方法(fullName):

    实例

    var myObject = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
    }
    myObject.fullName();         // 将返回 "Bill Gates"
    

    3.通过函数构造器来调用函数

    如果函数调用的前面是 new 关键字,那么这是一个构造函数调用。

    它看起来像你创建一个新的函数,但由于 JavaScript 函数是对象,你实际上创建一个新对象:

    实例
    // 这是函数构造器:

    function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
    }
    

    // 创建了一个新对象:

    var x = new myFunction("Bill", "Gates");
    x.firstName;                   
    

    四:JavaScript call() 方法

    1.通过 call(),您能够使用属于另一个对象的方法。

    本例调用 person 的 fullName 方法,并用于 person1:

    实例

    var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
    }
    var person1 = {
    firstName:"Bill",
    lastName: "Gates",
    }
    var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
    }
    person.fullName.call(person1);  // 将返回 "Bill Gates"
    

    带参数的 call() 方法

    2.call() 方法可接受参数:

    实例

    var person = {
    fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
    }
    }
    var person1 = {
    firstName:"Bill",
    lastName: "Gates"
    }
    person.fullName.call(person1, "Seattle", "USA");
    

    五:JavaScript 函数 Apply

    通过 apply() 方法,您能够编写用于不同对象的方法。
    apply() 方法与 call() 方法非常相似:
    在本例中,person 的 fullName 方法被应用到 person1:
    实例

    var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
    }
    var person1 = {
    firstName: "Bill",
    lastName: "Gates",
    }
    person.fullName.apply(person1);  // 将返回 "Bill Gates"
    
    call() 和 apply() 之间的区别

    不同之处是:
    call() 方法分别接受参数。
    apply() 方法接受数组形式的参数。
    如果要使用数组而不是参数列表,则 apply() 方法非常方便。

  • 相关阅读:
    原笔迹手写实现平滑和笔锋效果之:笔迹的平滑(二)
    区块链入门(4)Truffle创建项目,编译,及项目部署
    github的基本使用
    ES6新特性之傻瓜式说明
    webpack之傻瓜式教程及前端自动化入门
    查找树莓派ip地址的常用方法
    树莓派的无屏幕安装的教程
    采用QHD分辨率使用kinect2_calibration,完成QHD图像校正
    编译ORBSLAM2 build_ros.sh,实现kinect2在ROS环境下运行ORBSLAM2
    重写kinect2_viewer,编译高博kinect2在orbslam2上跑的程序(解决cmakefile中库依赖和头文件的问题)
  • 原文地址:https://www.cnblogs.com/xing--/p/14336111.html
Copyright © 2020-2023  润新知