JavaScript是一种灵活的面向对象的语言。在本文中,我们将看到3种不同的JavaScript创建对象的方法。
在此之前,重要的是要注意JavaScript是一种无类语言,并且这些函数以某种方式使用,以便它们模拟一个类。
1、使用函数作为类
这是JavaScript实例化对象最简单的方法之一。我们定义一个经典的JavaScript函数,并使用new关键字创建该函数的对象。函数的属性和方法是使用this关键字创建的。
<script>
// Function acting as a Class.
function copyClass(name, age) {
this.name = name;
this.age = age;
this.printInfo = function() {
console.log(this.name);
console.log(this.age);
}
}
// Creating the object of copyClass
// and initializing the parameters.
var obj = new copyClass("Vineet", 20);
// Calling the method of copyClass.
obj.printInfo();
</script>
输出:
Vineet
20
说明:OOP中的类有两个主要组成部分,某些参数和少量成员函数。在此方法中,我们声明一个类似于类的函数,有两个参数,名称和年龄(this关键字用于将类的名称和年龄与所提供的参数的名称和年龄区分开。)和一个printInfo方法,它打印这些参数的值。然后,我们简单地创建copyClass的对象obj,对其进行初始化并调用它的方法。
2、使用对象文字:
文字是定义对象的更小,更简单的方法。下面,我们仅使用对象文字实例化与上一个对象完全相同的对象。
<script>
// Creating Object.
var obj = {
name : "",
age : "",
printInfo : function() {
console.log(this.name);
console.log(this.age);
}
}
// Initializing the parameters.
obj.name = "Vineet";
obj.age = 19;
// Using method of the object.
obj.printInfo();
</script>
输出:
Vineet
20
说明:此方法的工作原理与上一个方法相同,但是我们没有将参数(名称和年龄)和方法(printInfo)捆绑在函数内部,而是将它们捆绑在对象本身中,初始化对象并简单地使用方法。
3、Singleton使用函数:
第三种方式是我们已经看到的其他两种方式的组合。我们可以使用函数来定义单例对象。
<script>
// Creating singleton object.
var obj = new function() {
this.name = "";
this.age = "";
this.printInfo = function() {
console.log(this.name);
console.log(this.age);
};
}
// Initializing object.
obj.name = "Vineet";
obj.age = 20;
// Calling method of the object.
obj.printInfo();
</script>
输出:
Vineet
20
说明:这是前两种方法的组合,我们将方法和参数捆绑在一个函数中,但不为它声明一个单独的函数(就像方法1中的copyClass一样)。相反,我们简单地使用函数结构来声明对象。