色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 怎樣封裝

方一強1年前7瀏覽0評論

JavaScript 是一種強大的編程語言,它支持面向?qū)ο蟮拈_發(fā)方式。在 Web 開發(fā)中,封裝是實現(xiàn)高內(nèi)聚低耦合的重要手段之一。JavaScript 提供了一些封裝技術(shù),本文將深入探討如何使用 JavaScript 進行封裝。

一、使用 Function 進行封裝

function Person(name, age) {
this._name = name;
this._age = age;
}
Person.prototype.getName = function() {
return this._name;
}
Person.prototype.getAge = function() {
return this._age;
}
var person1 = new Person("張三", 20);
console.log(person1.getName());
console.log(person1.getAge());

上面這段代碼定義了一個 Person 類,包含一個名字和一個年齡屬性。getName 和 getAge 方法用于獲取名字和年齡。使用 var person1 = new Person("張三", 20) 創(chuàng)建了一個新的 Person 對象,通過 person1.getName() 和 person1.getAge() 方法獲取了對象的名字和年齡。

二、使用 IIFE 進行封裝

var person = (function() {
var _name = "張三";
var _age = 20;
function getName() {
return _name;
}
function getAge() {
return _age;
}
return {
getName: getName,
getAge: getAge
};
})();
console.log(person.getName());
console.log(person.getAge());

上面這段代碼使用了 IIFE(立即調(diào)用函數(shù)表達式),將 Person 類的屬性和方法都放在了一個閉包中,避免了變量的污染。使用 var person = (function() { ... })() 創(chuàng)建了一個新的 Person 對象,通過 person.getName() 和 person.getAge() 方法獲取了對象的名字和年齡。

三、使用 Class 進行封裝

class Person {
constructor(name, age) {
this._name = name;
this._age = age;
}
getName() {
return this._name;
}
getAge() {
return this._age;
}
}
let person1 = new Person("張三", 20);
console.log(person1.getName());
console.log(person1.getAge());

上面這段代碼使用了 ES6 中的 Class 進行封裝。使用 class Person { ... } 定義了一個 Person 類,包含一個名字和一個年齡屬性以及 getName 和 getAge 方法。使用 let person1 = new Person("張三", 20) 創(chuàng)建了一個新的 Person 對象,通過 person1.getName() 和 person1.getAge() 方法獲取了對象的名字和年齡。

四、使用閉包進行封裝

function person(name, age) {
function getName() {
return name;
}
function getAge() {
return age;
}
return {
getName: getName,
getAge: getAge
};
}
let person1 = person("張三", 20);
console.log(person1.getName());
console.log(person1.getAge());

上面這段代碼使用了閉包進行封裝。在 person 函數(shù)中,使用了 getName 和 getAge 方法,通過 return 返回一個包含這兩個屬性和方法的對象。使用 let person1 = person("張三", 20) 創(chuàng)建了一個新的 Person 對象,通過 person1.getName() 和 person1.getAge() 方法獲取了對象的名字和年齡。

總結(jié):以上四種封裝方式各有優(yōu)缺點,開發(fā)者可以根據(jù)項目的實際情況進行選擇。無論使用哪種方式,封裝都是實現(xiàn)高內(nèi)聚低耦合的重要手段,有助于提高代碼的可維護性和重用性。