call() 调用一个对象的方法,用另一个对象替换当前对象,可以继承另外一个对象的属性
Function.call(obj[, param1[, param2[, [,...paramN]]]]);
apply()和call()方法一样,只是参数列表不同
Function.apply(obj[, argArray]);
https://www.cnblogs.com/ahuing/p/4443936.html
例子一:
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
console.log(add.call(sub, 2, 1));//3
例子二:
function People(name, age) {
this.name = name;
this.age = age;
}
function Student(name, age, grade) {
People.call(this, name, age);
this.grade = grade;
}
var student = new Student('小明', 21, '大三');
console.log(student.name + student.age + student.grade);//小明21大三
https://www.jianshu.com/p/625c35d84a80
exports
每一个模块中都有一个 module 对象, module 对象中有一个 exports 对象,module对象会创建一个叫exports的属性,初始化的值是 {}
exports只能使用.语法向外暴露内部变量 例 exports.xxx=xxx
module.exports既可以通过点语法,也可以直接赋值一个对象 例 module.exports.xxx=xxx
https://www.jianshu.com/p/434c247759bc
https://www.cnblogs.com/leungUwah/p/6642529.html