You can find all the code in this post at repo Github.
Recommend before ES6.
/** * @param {string} firstName * @param {string} lastName * @param {number} age */ function Person(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.greet = function () { console.log(`Hello, my name is ${this.firstName} ${this.lastName}`); }; } // Usage example const person1 = new Person("John", "Doe", 30); person1.greet(); // => Hello, my name is John Doe const person2 = new Person("Jane", "Smith", 25); person2.greet(); // => Hello, my name is Jane Smith
Recommend after ES6.
class Person { constructor(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } greet() { console.log(`Hello, my name is ${this.firstName} ${this.lastName}`); } } // Usage example const person1 = new Person("John", "Doe", 30); person1.greet(); // => 'Hello, my name is John Doe' const person2 = new Person("Jane", "Smith", 25); person2.greet(); // => 'Hello, my name is Jane Smith'
const person = { firstName: "John", lastName: "Doe", age: 30, greet: function () { console.log(`Hello, my name is ${this.firstName} ${this.lastName}`); }, }; person.greet(); // => 'Hello, my name is John Doe'
const personPrototype = { greet: function () { console.log(`Hello, my name is ${this.firstName} ${this.lastName}`); }, }; const person = Object.create(personPrototype); person.firstName = "John"; person.lastName = "Doe"; // Usage example person.greet(); // => 'Hello, my name is John Doe'
/** * @param {string} firstName * @param {string} lastName * @param {number} age * @return {object} */ function createPerson(firstName, lastName, age) { return { firstName: firstName, lastName: lastName, age: age, greet: function () { console.log(`Hello, my name is ${this.firstName} ${this.lastName}`); }, }; } // Usage example const person1 = createPerson("John", "Doe", 30); person1.greet(); // => 'Hello, my name is John Doe' const person2 = createPerson("Jane", "Smith", 25); person2.greet(); // => 'Hello, my name is Jane Smith'
The above is the detailed content of Object creation - JavaScript Challenges. For more information, please follow other related articles on the PHP Chinese website!