zoukankan      html  css  js  c++  java
  • [JavaScript-Function] Function Invocation/Call(函数调用) 以及call() and apply() 方法

    介绍:JS函数中的代码会被函数被invoke(调用)时执行.

    函数被定义时代码不执行,

    函数调用时函数内的代码会被执行.

    常用的term是 call a function 而不是 invoke a function.

    function always belong to a object in javascript.

    When a function does no tbelong to nay object. In javascript there is alaways a default global object.

    在Html 中,是浏览器窗口本身. the global object will become a window function in this case.

    That means it can be invoked by window.functionName().

    1. this keyword : 代表当前代码的对象.

    The value of this, when used in a function , is the objec that owns the function.

    Note that this is not a variablke. It is a keyword. You cannot change the value of this.

    2. Invoking a Function as a Method

    In javascript you can defiune functions as object methods.(对象方法?),形如:

    var myObject = {
        firstName:"John",
        lastName: "Doe",
        fullName: function () {
            return this.firstName + " " + this.lastName;
        }
    }
    myObject.fullName();         // Will return "John Doe"

    3. 对于JSON对象,可以使用"."来调用对象内方法.

    var myObject = {
    firstName:"John",
    lastName: "Doe",
    fullName: function() {
    return this.firstName+" "+this.lastName;
    }
    }

    4.Invoking a Function with a Function Constructor

    NOTE:

    A constructor invocation creates a new object. The new object inherits the properties and methods from its constructor.

    The this keyword in the constructor does not have a value.
    The value of this will be the new object created when the function is invoked.

    ====================================Call==================================

    All Functions are Methods:If a function is not a method of a JavaScript object, it is a function of the global object (see previous chapter).

    1. The JavaScript call() method.

    2. The call() method with Arguments.

    Output:

    John Doe,Oslo,Norway

     =======================apply()=================

    和call()方法类似.

    区别是,call() 的参数是分隔开的, apply()的参数是一个数组.

    person.fullName.call()变成了person.fullName.apply(person1,["Oslo","Norway"]);

    ====实例 Math.max(arg1,arg2,arg....)

    Math.max(1,2,3);会返回3

    但是JavaScript数组并没有max()方法,所以可以apply Math.max()方法.

    Math.max.apply(null, [1,2,3]); // Will also return 3

     第一个参数(null)无关紧要.在本例中不使用.

    宛如智障,暗藏锋芒
  • 相关阅读:
    兴趣标签体系告诉我,闲鱼的95后是这样的...
    重磅报告 | 《中国企业2020:人工智能应用实践与趋势》
    this指针和类的继承 C++快速入门16
    构造器和析构器 C++快速入门15
    构造器和析构器 C++快速入门15
    鱼油账号记录程序(续) 零基础入门学习Delphi39
    鱼C扫描器 零基础入门学习Delphi40
    鱼油账号记录程序(续) 零基础入门学习Delphi39
    PEInfo编程思路讲解02 工具篇02|解密系列
    PEInfo编程思路讲解02 工具篇02|解密系列
  • 原文地址:https://www.cnblogs.com/zienzir/p/9255203.html
Copyright © 2011-2022 走看看