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

  • 相关阅读:
    利用 PHP 导出 Git 某个分支下,新增或修改过的文件
    [翻译] 10 个实用的 Git 高级命令
    Django web project
    install virtualenv
    js原型继承
    HTML 学习杂记
    IDEA 文件列表隐藏某后缀文件
    coocsCreator杂记
    mac install brew
    c编程:输入一个数字n,则n代表n行,每行输入2个数字a,b计算每行的a+b问题。
  • 原文地址:https://www.cnblogs.com/hebing0415/p/11563617.html
Copyright © 2011-2022 走看看