• JavaScript知识点整理 (二)


    1)函数概述

    1.函数是一块 JS 代码,被定义一次,但可以执行和调用多次。 JS 中的函数也是对象,
    所以 JS 函数可以像其它对象那样操作和传递,所以也常叫 JS 中的函数为函数对象。
    2.函数也是对象,也叫函数为函数对象。
    函数的返回值依赖return,如果没有return则返回 undefined,如果作为构造器使用 new调用的话,return 后面的是基本类型或者没有,则将 this 返回。

    3.函数调用的几种方式
    直接调用  foo()
    对象方法 o.method()
    构造器 new Foo()
    call/apply/bind  func.call(o)

     2)函数声明与表达式

    函数声明 函数表达式 函数构造器的区别:

    3)this

    全局对象中的this指的是window对象,但是在严格模式下时undefined.
    在对象中对象方法中的this值得是当前的对象,或者把函数作为对象的方法是用this都是指当前对象.
    对象原型链上的方法中的this也指的是当前对象。
    对象中的get/set方法中的this也指的是当前对象。
    构造器中的this指的是构造器函数prototype中的原型,当new一个对象时就会将构造器的prototype中的this赋值个当前对象。
    
    call():扁平的传参,
    apply():以数组的方式传参;
    bind对象绑定之后即使有新的对象,仍然会按原来的绑定走。

    判断this的指向(1-4优先级逐级递减,1优先级最高,4优先级最低):
    1、函数被new调用,this指向由new新构造出来的这个对象;
    2、函数通过call()、apply()、bind()调用,this指向被绑定的对象;
    3、函数作为方法被调用,this指向这个对象(即常说的对象上下文);
    4、默认(非严格模式)情况下,this指向window,  严格模式下,this指向undefined。

    4)闭包
    闭包的理解:
    闭包就是能够读取其他函数内部变量的函数
    可以把闭包简单理解成“定义在一个函数内部的函数”。
    所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
    闭包的作用:
    闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
    优点:灵活和方便、封装。
    缺点:空间浪费、内存泄露、性能消耗。
    5)作用域
    1.javascript没有块级作用域(for、while、if等括号中声明变量和括号外声明变量效果一样,在语句块外仍然可以访问)
    2.javascript可以用!或+或()放在function前,为函数表达式写法,防止function前置形成函数声明,函数声明后加()会报语法错误


    
    
  • 相关阅读:
    虚函数中的变量作用域问题
    C++技能重拾2
    C++技能重拾
    位运算取第一个非0的位 r & (~(r-1))
    ThoughtWorks微服务架构交流心得
    字符串匹配的sunday算法
    Codeforces Round #270(利用prim算法)
    HDFS建筑与shell操作
    Spark SQL 源代码分析系列
    HDU 4686 Arc of Dream(递归矩阵加速)
  • 原文地址:https://www.cnblogs.com/Lovebugs/p/6445797.html
Copyright © 2020-2023  润新知