在 JavaScript 中创建对象的 7 种方法:
1.对象构造函数
创建对象最简单的方法是使用 Object 构造函数:view plainprint?
var person = new Object();
person.name = "Diego";
person.getName = function(){
return this.name;
};
2. 字面符号
查看普通版?
var person = {
person.name : "Diego",
person.getName : function(){
return this.name;
}
}
3.工厂功能
Factory 函数允许封装和重用创建类似对象的逻辑。它为此利用了任何先前的构造。要么:查看plainprint?
var newPerson=function(name){
var result = new Object();
result.name = name;
result.getName = function(){
return this.name;
};
return result;
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
或者:
view plainprint?
var newPerson=function(name){
return {
person.name : name,
person.getName : function(){
return this.name;
};
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
4. 函数构造函数
在 Javascript 中,可以调用前面带有 new 运算符的任何函数。给定一个函数 F,对于 new F():创建一个新的空对象 X。X 被设置为 F 的上下文,这在整个 F 中都指向 X。X 作为 F 视图普通打印的结果返回?
function Person(name){
this.name = name;
this.getName = function(){
return this.name;
};
};
var personOne = new Person("Diego");
console.log(personOne.getName()); // prints Diego
console.log(personOne instanceOf Person); // prints true
console.log(personOne.constructor === Person); // prints true
console.log(personOne instanceOf Object); // prints true
5. 原型
函数在 Javascript 中非常特殊。它们是对象,它们可以创建其他对象,并且它们会自动获得一个名为原型的字段。原型是具有单个字段的普通对象,称为构造函数,指向函数本身。它的特别之处在于,通过函数创建的每个对象都继承了函数的原型。查看普通版?
function Person(){};
Person.prototype.name = "Diego";
var personOne = new Person();
var personTwo = new Person();
console.log(personOne.constructor == Person); // prints true
console.log(personOne.name); // prints Diego
console.log(personTwo.constructor == Person); // prints true
console.log(personTwo.name); // prints Diego
6.功能/原型组合
正如您想象的那样,功能/原型组合利用了这两种方法 :) 查看原图?
function Person(name){
this.name = name;
};
Person.prototype.getName = function(){
return this.name;
};
var personOne = new Person("Diego");
var personTwo = new Person("Filippo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Filippo
console.log(personOne.getName === personTwo.getName) //prints true
7.单身人士
有时,您可能希望确保某个类只存在一个实例。在 Javascript 中获取 Singleton 就像同时定义和调用构造函数一样简单:查看 plainprint?
var singleton = new function(){
this.name = "ApplicationName";
};