遍历、Object.assign、this的判断规则、类例子

对象遍历

  • for … in : 循环遍历对象的属性值;
    遍历、Object.assign、this的判断规则、类例子

数组遍历

以下方式通过遍历数组下标得到值:

  • forEach() : 遍历数组中的所有值并忽略回调函数中的返回值;
  • map( callback ) : map方法对类型化数组中的元素调用提供的 callback函数,按照顺序,并且会从结果构造新的类型化数组
  • every() : 会一直运行直到回调函数返回false;
  • some() : 一直运行直到回调函数返回true;

以下方式直接遍历数组的值:

  • for … of : ES6提供的直接遍历数组值方法
    遍历、Object.assign、this的判断规则、类例子

  • Object.assign( sourceobj, targetobj)
    实现对象的浅复制:
    1.直接变量(例 a:2)复制目标对象的值, 源对象的值与目标对象互不影响,改变其中一方值不会影响到另一方。
    2.属性值是对象(包括普通对象、函数和数组)时则复制的是引用值

    遍历、Object.assign、this的判断规则、类例子

this的判断规则

每个函数的this是在调用时被绑定的,this的值完全取决于函数的调用位置。

如果要判断一个运行中的函数的this绑定,就需要找到这个函数的直接调用位置。找到之后就可以顺序应用下面四条规则来判断this的绑定对象。
1 . 有new调用?绑定到新创建的对象。
2 . 由call或者apply(或者bind)调用?绑定到那个指定的对象。
3 . 由上下文对象调用?绑定到那个上下文对象。
4 . 默认:在严格模式下绑定到 undefined,否则绑定到全局对象(window)。

注意 : ES6中的箭头函数不会使用以上四条绑定规则,而是根据当前语法作用域来决定this, 即箭头函数会继承外层函数调用的this绑定,这和selt = this机制一样。

例子 :
new绑定:
遍历、Object.assign、this的判断规则、类例子
显示绑定,call /apply/bind
遍历、Object.assign、this的判断规则、类例子
隐式绑定,上下文绑定
遍历、Object.assign、this的判断规则、类例子
除了以上几种之外的其他绑定,默认绑定:
遍历、Object.assign、this的判断规则、类例子

  • undefined : 一个声明未定义(赋值)的变量的初始值,或没有实际参数的形式参数。它是 JavaScript 基本类型 之一。
  • 一个函数如果没有使用return语句指定返回值,调用之后就会返回一个undefined值。
  • null :特指对象的值未设置。它是 JavaScript 基本类型 之一。

扩展知识
其他语言中的类:
类初识:
以建筑为例子:

  • 类:建筑设计图
  • 实例:实际建筑物
  • 构造函数:与类名相同,由他进行类的实例化,new 类名(参数),充当建筑工人。

类的继承:
子类通过extends关键字继承父类的基本属性。多态技术使子类可以重写父类的方法,或直接使用父类的方法。

传统的面向类的语言中,构造函数是属于类的。然而,在JavaScript中恰好相反,它的“类”是属于构造函数的(类似Foo.prototype… 这样的类型引用)。

类可以是一个界面,一个模块,一个简单的方法。

以上内容参考书籍/文档:
《你不知道的JavaScript》
MDN