JavaScript 中级笔记 第三章攻略
1. 闭包(Closures)
闭包是 JavaScript 中一个重要的概念,它允许函数访问其词法作用域之外的变量。闭包在许多情况下都非常有用,例如在创建私有变量和实现模块化时。
示例 1:创建私有变量
function counter() {
let count = 0;
return function() {
count++;
console.log(count);
};
}
const increment = counter();
increment(); // 输出 1
increment(); // 输出 2
示例 2:实现模块化
const calculator = (function() {
let result = 0;
function add(num) {
result += num;
}
function subtract(num) {
result -= num;
}
function getResult() {
return result;
}
return {
add,
subtract,
getResult
};
})();
calculator.add(5);
calculator.subtract(2);
console.log(calculator.getResult()); // 输出 3
2. 原型链(Prototype Chain)
JavaScript 中的每个对象都有一个原型(prototype),原型是一个对象,它包含共享的属性和方法。当我们访问一个对象的属性或方法时,如果对象本身没有该属性或方法,JavaScript 会沿着原型链向上查找。
示例 1:原型链继承
function Animal(name) {
this.name = name;
}
Animal.prototype.sayName = function() {
console.log(\"My name is \" + this.name);
};
function Dog(name, breed) {
Animal.call(this, name);
this.breed = breed;
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.bark = function() {
console.log(\"Woof!\");
};
const myDog = new Dog(\"Max\", \"Labrador\");
myDog.sayName(); // 输出 \"My name is Max\"
myDog.bark(); // 输出 \"Woof!\"
示例 2:使用原型链扩展内置对象
Array.prototype.sum = function() {
let total = 0;
for (let i = 0; i < this.length; i++) {
total += this[i];
}
return total;
};
const numbers = [1, 2, 3, 4, 5];
console.log(numbers.sum()); // 输出 15
以上是 JavaScript 中级笔记第三章的攻略,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 中级笔记 第三章 - Python技术站