原型链与闭包
原型链:
ES5如何实现继承?
思路:应用原型来实现继承。首先,每个构造函数都拥有内置原型对象prototype。通过prototype新建一个想访问的构造函数的实例化对象。通过该对象实现访问其他构造函数的内容,以实现继承。
代码:
function User(username, password) {
this.username = username;
this.password = password;
this.login = function() {
console.log("登录");
}
}
function Admin() {
this.deletePerson = function() {
console.log("删除一个人");
}
}
Admin.prototype = new User();
let admin = new Admin();
admin.login();
原型链:每个对象都有原型对象,每个原型对象还有原型对象。
当在对象中查找所需的值,可以通过原型链查找,即_proto_,最终查到Object.prototype为止。
闭包:函数嵌套函数,内部函数就叫闭包。
正常情况下,函数执行完成后,内部变量会被销毁,
闭包:内部函数没有被执行完成,外部函数变量不会被销毁。
闭包的作用:延伸了变量的作用范围。
利用闭包实现模块化的功能,封装函数。
//function为立即执行函数
let xz = (function() {
let a = 10;
let b = 20;
function add() {
return a + b;
}
function sub() {
return a - b;
}
return {
add,
sub
}
})
let result1 = xz.add();
let result2 = xz.sub();
console.log(result1);
console.log(result2);