这是我参与「第四届青训营 」笔记创作活动的第27天
箭头函数
- 如果形参只有一个,则小括号可以省略;
const fn = item => {
}
- 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的执行结果;
const fn = item => 1 + 1
- 函数体如果只有一条语句,且返回的是对象
const fn = item => ({
a: ''
})
- 箭头函数 this 指向声明时所在作用域下 this 的值;
- 箭头函数不能作为构造函数实例化;
- 不能使用 arguments;
构造函数
定义一个构造函数,参数只能第一次赋值,之后就只能访问不能修改
方式一(推荐):
const Person = (function () {
let _gender = Symbol('gender')
function P (name, gender) {
this.name = name
this[_gender] = gender
}
return P
})()
const p1 = new Person('李四', '男')
console.log(p1); 只能在实例对象中看到 // { name: '李四', Symbol(gender): '男' }
方式二:
const Person = (function () {
let _gender = ''
function P (name, gender) {
this.name = name
_gender = gender
}
P.prototype.getGender = () => {
return _gender
}
return P
})()
const p1 = new Person('张三', '男')
console.log(p1.getGender()); 在实例对象中通过访问构造函数的原型对象中的方法
// 男
模板字符串
- 字符串中可以出现换行符
- 可以使用 ${xxx} 形式引用变量
const sum = 7
const str = `3 + 4 应该
等于${sum}`
// 3 + 4 应该
等于7
转化为布尔类型
- 代表空,否定的值会转化为false, 如: '', 0, NaN, null, undefined
- 其余值都会转化成true(所有只需把转成false的记住就行)
改变函数内部this指向(3种方法)
- apply()方法,返回值就是函数的返回值,是调用函数
fn.apply(thisArg, [argsArr]) // thisArg:在fn函数运行时指定的this值
// argsArr:传递的值,必须包含在数组里面
- call()方法,返回值就是函数的返回值,是调用函数(apply()方法一样,只不过传参的方式不一样)
fn.call(thisArg, arg1, arg2, arg3...) // thisArg:在fn函数运行时指定的this值
// argsArr:传递的一些参数
- bind()方法,返回指定的this值和初始化参数改造的原函数拷贝
fn.bind(thisArg, arg1, arg2, arg3...) // thisArg:在fn函数运行时指定的this值
// arg1, arg2, arg3...:传递的一些参数