روش های ایجاد آبجکت در جاوا اسکریپت

مقدمه
راه های بسیار کمی برای ایجاد یک شی در جاوا اسکریپت وجود دارد.
- حروف عینی
- سازنده شی ()
- Object.create()
- عملکرد سازنده
- کلاس ES6
حروف عینی
احتمالاً این سریعترین و ساده ترین راه برای ایجاد یک شی در جاوا اسکریپت است. این همچنین بهعنوان اولیهساز شیء نامیده میشود که یک لیست محدود شده با کاما از صفر یا چند جفت نام ویژگی و مقادیر مرتبط یک شی است که در پرانتزهای فرفری محصور شده است.{}
).
const newObject = {} // Simply create a new empty object
const newObject = {
someKey: "someValue",
anotherKey: "anotherValue"
}
مقادیر شی می تواند نوع داده اولیه یا شیء دیگر باشد.
سازنده شی ()
می توانید با استفاده از سازنده Object داخلی یک شی ایجاد کنید.
اگر مقدار پاس شده باشد null
یا undefined
یا no value passed
سپس یک شی خالی ایجاد می کند و برمی گرداند.
اگر مقدار قبلاً یک شی باشد، همان مقدار را برمی گرداند.
// below options create and return an empty object
const ObjWithNoValue = new Object();
const ObjWithUndefined = new Object(undefined);
const ObjWithNull = new Object(null);
const newObject = {
someKey: "someValue",
anotherKey: "anotherValue"
}
const sameObject = new Object(someObject);
sameObject['andAnotherKey'] = "one another value";
sameObject === newObject; // both objects are same.
Object.create()
این روش به شما امکان می دهد یک شی جدید با یک نمونه اولیه خاص ایجاد کنید. این رویکرد شی جدید را قادر میسازد تا ویژگیها و روشها را از نمونه اولیه به ارث ببرد و رفتار وراثتمانند را تسهیل کند.
const person = {
greet: function () {
console.log(`Hello ${this.name || 'Guest'}`);
}
}
const driver = Object.create(person);
driver.name = 'John';
driver.greet(); // Hello John
عملکرد سازنده
قبل از ES6، این یک روش رایج برای ایجاد چندین شیء مشابه بود. سازنده چیزی نیست جز یک تابع و با کمک یک کلمه کلیدی جدید می توانید یک شی ایجاد کنید.
تمرین خوبی است که
capitalize
اولین کاراکتر afunction name
هنگامی که شی را با کلمه کلیدی “جدید” می سازید.
function Person(name, location) {
this.name = name;
this.location = location;
greet() {
console.log(`Hello, I am ${this.name || 'Guest'} from ${this.location || 'Earth'}`);
}
}
const alex = new Person('Alex');
alex.greet(); // Hello, I am Alex from Earth
const sam = new Person('Sam Anderson', 'Switzerland');
sam.greet(); // Hello, I am Sam Anderson from Switzerland
کلاس ES6
یک رویکرد مدرن تر به ایجاد شی درست مانند سایر زبان های برنامه نویسی OOP با استفاده از کلاس با تابع سازنده برای مقداردهی اولیه خواص و روش ها کمک می کند.
class Person {
constructor(name, location) {
this.name = name || 'Guest';
this.location = location || 'Earth';
}
greet() {
console.log(`Hello, I am ${this.name} from ${this.location}`);
}
}
const santa = new Person('Santa');
santa.greet(); // Hello, I am Santa from Earth
مراجع: