zoukankan      html  css  js  c++  java
  • javascript数据类型(四)--- 函数对象之基础

    一、函数的定义

      函数式一段可以重复使用的代码块

    1.1 函数声明和函数表达式

      定义函数常用的两种方式是函数声明和函数表达式,如下:  

        function fn1 () { //函数声明
          console.log('fn1()')
        }
        var fn2 = function () { //表达式
          console.log('fn2()')
        }

    关于函数声明与函数表达式的区别,请参考大神之作:https://www.cnblogs.com/chaoyuehedy/p/9110063.html

    1.2 函数的调用

      函数调用方式有以下几种:

    • 直接调用: test()
    • 通过对象调用: obj.test()
    • new调用: new test()
    • 临时让test成为obj的方法进行调用:test.call/apply(obj)

    1.3 回调函数

      简单理解什么函数才是回调函数?

    • 你定义的
    • 你没有调
    • 但最终它执行了(在某个时刻或某个条件下)

    常见的回调函数:

    • dom事件回调函数 ==>发生事件的dom元素
    • 定时器回调函数 ===>window
    • ajax请求回调函数
    • 生命周期回调函数:

    1.4  IIFE(立即执行函数)

      全称: Immediately-Invoked Function Expression,即立即执行函数。常用的写法如下:

        (function () { //匿名函数自调用
          var a = 3
          console.log(a + 3)
        })()

    如上的代码理解为(匿名函数)(),即定义一个匿名函数后直接使用 () 来调用该匿名函数。更多关于立即执行函数的知识,参考:https://www.cnblogs.com/cnfxx/p/7337889.html

    立即执行函数的左右:

    • 隐藏实现,其内部的变量对外是不可见的(函数局部变量,作用域为函数体内),是变量更安全
    • 不会污染外部(全局)命名空间,内部变量时局部变量,不会造成全局变量的更改
    • 用它来编码js模块

    1.5 函数中的this

    1.5.1 this是什么?

    • 任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window

    • 所有函数内部都有一个变量this
    • 它的值是调用函数的当前对象

    1.5.2 如何确定this的值? 记住以下几点

    • test(): window
    • p.test(): p
    • new test(): 新创建的对象
    • p.call(obj): obj

      了解更多关于JavaScript this 的知识请参考:https://www.cnblogs.com/yuanbo88/p/6290543.html

  • 相关阅读:
    一、zuul如何路由到上游服务器
    一、hystrix如何集成在openfeign中使用
    一、ribbon如何集成在openfeign中使用
    二、openfeign生成并调用客户端动态代理对象
    一、openfeign的自动配置
    BootStrap【一、概述】
    JavaSpring【七、AspectJ】
    JavaSpring【六、AOP的API】
    JavaSpring【五、AOP基础】
    目录整理
  • 原文地址:https://www.cnblogs.com/hebing0415/p/11563617.html
Copyright © 2011-2022 走看看