JavaScript学习笔记(伍)

91 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情

生成器函数

生成器函数使用 function* 语法编写。最初调用时,生成器函数不执行任何代码,而是返回一种称为 Generator 的迭代器。通过调用生成器的下一个方法消耗值时,Generator 函数将执行,直到遇到 yield 关键字。

可以根据需要多次调用该函数,并且每次都返回一个新的 Generator,但每个Generator 只能迭代一次

this 指向

1、以函数形式调用,this的指向永远是 window
2、以方法的形式调用,this指向调用方法的那个对象
3、以构造函数形式调用,this 指向实例对象
4、以事件绑定函数的形式调用,this 指向绑定事件的对象
5、使用call、apply调用时,this 指向指定的那个对象

一、所有的this 关键字,在函数运行时,才能确定它的指向。

二、this 所在的函数由哪个对象调用,this 就会指向谁。

四、当函数执行时,没有明确的调用对象时,则this 指向 window。

箭头函数中this会继承外层函数调用的 this call() 可以调用一个函数,改变函数内部的this指向,可以实现继承 fn.call(想要将this 指向哪里,函数实参1,函数实参2) apply() 调用一个函数,改变函数内部的 this 指向 fn.apply(想要将this指向哪里,[函数实参1,函数实参2]) apply传递的实参必须是数组(或者伪数组) Math.max.apply(Math,Array); //求数组 Array 中的最大值(max 改为 min 求最小值) bind() 不会调用函数,但可以改变函数内部的this指向 新函数 = fn.bind(想要this指向哪里, 函数实参1,函数实参2) 不会调用 fn 函数,但会返回由指定 this 和指定实参的 原函数拷贝

高阶函数 把其他函数作为参数,或把其他函数作为返回值输出。

面向对象 (以对象功能来划分问题,而不是步骤) 编程思想:对代码和数据进行封装,并以对象调用的形式,对外提供统一的调用接口 JS中的面向对象,是基于原型 的面向对象。JS中的对象是依靠构造器(constructor) 和原型(prototype) 构造出来的。 面向对象的特性:封装性、继承性、多态性

对象的字面量就是一个 {} 里面的属性和方法均是 键值对 工厂模式:new Object() 可以大批量创建对象 静态成员 在构造函数本身添加的成员,只能由构造函数本身来访问 实例成员 在构造函数内部创建的对象成员,只能由实例化对象来访问

for…of 遍历数组 获取数组的值,若采用 for…in 获取的是 index 索引值 for…in 主要用于遍历对象