前言
javascript 创立目标简略的说,无非就是运用内置目标或各种自界说目标,当然还能够用 JSON ;但写法有很多种,也能混合运用。下面自己将介绍一下至今自己所学的部分办法。
运用目标字面量
目标字面量是一种在 JavaScript 中创立目标的简略而直接的办法。它允许你在花括号 {}
内部列出目标的特点和对应的值,形成键值对的调集,然后界说一个目标。
下面是运用目标字面量创立目标的根本语法:
let object = {
key1: value1,
key2: value2,
// 更多的键值对...
};
其间,key1
和 key2
是目标的特点名称,它们可所以字符串或符号;value1
和 value2
是特点对应的值,可所以任何有效的 JavaScript 数据类型,包含数字、字符串、布尔值、函数、甚至是其他目标。
下面是一个运用目标字面量创立目标的示例:
let person = {
name: '沐渃清澄',
age: 21,
sex: '男'
};
能够看出,目标字面量是一种十分便利的创立目标的办法,特别是在需求创立简略的目标时。它简练直观,让你能够快速界说和运用目标,十分适合在编写轻量级代码或进行快速原型开发时运用。
用function来模仿无参的结构函数
在JavaScript中,咱们能够运用函数来模仿结构函数,即运用函数创立目标的实例。如果需求模仿无参的结构函数,咱们能够界说一个函数,然后在函数体内运用this
关键字来指向新创立的目标,并为这个目标增加特点和办法。下面是一个示例:
function Person() {
// 在结构函数内部运用this关键字界说目标的特点
this.name = '沐渃清澄';
this.age = 21;
this.sex = '男';
// 界说目标的办法
this.greet = function() {
return 'Hello, my name is ' this.name;
};
}
在这个示例中,咱们界说了一个名为Person
的结构函数,它模仿了一个人的特点和办法。在结构函数内部,咱们运用this
关键字来引证行将创立的目标,并为这个目标增加了name
、age
和sex
特点,以及一个greet()
办法。
要创立Person
目标的实例,咱们能够运用new
关键字来调用结构函数:
let person = new Person();
经过new Person()
,咱们创立了一个新的Person
目标的实例,并将其赋给了person
变量。
现在,person
目标就具有了name
、age
、sex
特点和greet()
办法,咱们能够经过这些特点和办法来访问和操作目标的数据。例如:
console.log(person.name); // 输出 "沐渃清澄"
console.log(person.age); // 输出 21
console.log(person.sex); // 输出 "男"
console.log(person.greet()); // 输出 "Hello, my name is 沐渃清澄"
总的来说,运用函数来模仿结构函数是JavaScript中一种常见的目标创立办法,经过在函数内部运用this
关键字来引证新创立的目标,咱们能够轻松地界说目标的特点和办法。这种办法十分灵敏,适用于各种场景,包含创立无参结构函数。
用 function 来模仿参结构函数来完成 ( 用 this 关键字界说结构的上下文特点)
当咱们运用函数来模仿带参数的结构函数时,咱们能够在函数内部运用this
关键字来界说目标的特点,并在创立目标的实例时传入参数来初始化这些特点。下面是一个示例:
function Person(name, age,sex) {
// 运用传入的参数初始化目标的特点
this.name = name;
this.age = age;
this.sex = sex;
// 界说目标的办法
this.greet = function() {
return 'Hello, my name is ' this.name;
};
}
在这个示例中,咱们界说了一个名为Person
的结构函数,它带有三个参数:name
、age
和sex
。在结构函数内部,咱们运用this
关键字来引证行将创立的目标,并将传入的参数分别赋值给目标的name
、age
和sex
特点。
要创立Person
目标的实例,咱们需求在调用结构函数时传入参数:
let person = new Person('沐渃清澄', 21, 'sex');
经过new Person('沐渃清澄', 21, 'sex')
,咱们创立了一个新的Person
目标的实例,并将传入的参数 '沐渃清澄'
、21
和 '男'
分别赋值给了目标的name
、age
和sex
特点。
用工厂形式来创立(内置目标)
工厂形式是一种常见的 JavaScript 规划形式,它经过一个函数来创立目标,并根据参数或装备的不同回来不同类型的目标实例。在 JavaScript 中,咱们能够运用工厂形式来创立内置目标,如数组、日期等。下面是一个示例:
function createArray(length, defaultValue) {
let array = [];
for (let i = 0; i < length; i ) {
array.push(defaultValue);
}
return array;
}
let defaultArray = createArray(5, 0);
console.log(defaultArray); // 输出 [0, 0, 0, 0, 0]
在这个示例中,咱们界说了一个名为createArray
的工厂函数,它承受两个参数:length
和defaultValue
。函数内部经过循环将指定长度的数组填充为指定默认值,并回来该数组。
咱们能够调用createArray
函数来创立一个指定长度且元素值都为默认值的数组。例如,咱们调用createArray(5, 0)
会回来一个长度为 5 的数组,数组的每个元素都是 0。
用原型办法创立
运用原型办法创立目标也是 JavaScript 中一种常见的形式,它经过界说一个结构函数和原型目标来完成目标的创立和办法的同享。下面是一个运用原型办法创立目标的示例:
// 界说结构函数
function Person(name, age) {
this.name = name;
this.age = age;
this.sex= sex;
}
// 经过原型目标增加办法
Person.prototype.bark = function() {
console.log(this.name);
};
// 创立目标实例
let person1 = new Person('沐渃清澄', 21,'男');
let person2 = new Person('小明', 22,'男');
// 调用办法
person1.bark(); // 输出:沐渃清澄
person2.bark(); // 输出:小明
在这个示例中,咱们首要界说了一个结构函数 Person
,它承受两个参数 name
、age
和 sex
,用于初始化一个人的姓名、年龄和性别特点。
然后,咱们经过 Person.prototype
目标来增加一个办法 bark
,这样一切经过 Person
结构函数创立的目标实例都能够同享这个办法。
最后,咱们运用 new
关键字来创立两个 Person
目标实例 person1
和 person2
,并分别调用了 bark()
办法。
运用原型办法创立目标的长处包含:
- 办法同享:一切经过结构函数创立的目标实例都能够同享原型目标上界说的办法,节省了内存空间。
- 扩展性:能够随时在原型目标上增加新的办法,一切实例都能够当即访问到新的办法。
- 功能:比较每个目标实例都界说自己的办法,运用原型办法能够进步代码的功能,由于办法只需界说一次。
因而,在实际开发中,原型办法是一种常见且高雅的目标创立办法,尤其适用于需求创立多个相似目标的状况。
运用类(ES6及今后版别)
运用类是 ES6及今后版别中新增的特性,它供给了一种愈加面向目标的编程办法,使得 JavaScript 的代码愈加结构化、可读性更强。下面是一个运用类创立目标的示例:
class Dog {
constructor(name, age) {
this.name = name;
this.age = age;
this.sex= sex;
}
bark() {
console.log(`${this.name}`);
}
// 创立目标实例
let person1 = new Person('沐渃清澄', 21,'男');
let person2 = new Person('小明', 22,'男');
// 调用办法
person1.bark(); // 输出:沐渃清澄
person2.bark(); // 输出:小明
在这个示例中,咱们运用 class
关键字界说了一个名为 Person
的类。类中包含了结构函数 constructor
和一个办法 bark
。
- 结构函数
constructor
用于初始化目标的特点,它承受两个参数name
、age
和sex
,并运用this
关键字将这两个参数分别赋值给目标的name
、age
和sex
特点。 - 办法
bark
是类的一个成员办法,他运用了模板字符串来输出人的姓名。
经过 class
关键字界说的类,咱们能够经过 new
关键字来创立目标实例,然后调用目标的办法。
运用类的长处包含:
- 语法糖:类供给了一种愈加简练、清晰的语法,使得面向目标的编程愈加直观和易于了解。
-
承继和多态:类支持承继和多态的特性,能够经过
extends
关键字轻松完成类的承继,并经过办法的覆写完成多态。 - 封装性:类的界说具有封装性,能够将特点和办法封装在一起,进步了代码的可维护性和可读性。
因而,在 JavaScript 开发中,运用类是一种十分常见和推荐的办法,特别适用于构建复杂的应用程序和组件。
总结
综上所述,每种创立目标的办法都有其适用的场景和局限性。在实际开发中,能够根据具体状况选择合适的办法来创立目标,以进步代码的可读性、可维护性和功能效率。