JavaScript工厂方法创建对象

JavaScript工厂方法创建对象教程

JavaScript 中,我们可以通过工厂方法的方式来创建一个 对象,通过工厂方法创建对象其实也是通过自定义一个 函数,然后赋予它对象的思想。

不过,通过工厂方法创建对象,我们是在方法里面通过 new Object 来创建一个对象,并最终通过 return 来返回创建的对象。

JavaScript工厂方法创建对象

语法

function createPerson(attr1, attr2, attr3, ...){ var person = new Object(); person.attr1 = attr1; person.attr2 = attr2; person.attr3 = attr3; ... person.func = function(){ //todo } return person; }

说明

我们通过工厂方法 createPerson 的方式来创建对象。工厂模式虽然解决了创建多个相似对象的问题,但是却没有解决对象识别的问题

案例

工厂方法创建对象

通过工厂方法创建对象

<!DOCTYPE html> <html> <head> <title>JavaScript工厂方法创建对象</title> <script type="text/javascript"> console.log("嗨客网(www.haicoder.net)"); function createPerson(name, age, sex){ var person = new Object(); person.name = name; person.age = age; person.sex = sex; person.sayHi = function(){ console.log("I am", this.name, "i am", this.age, "years old", "and my sex is", this.sex); } return person; } var person = createPerson("HaiCoder", 109, "F"); person.sayHi(); person.name = "haicoder"; person.sayHi(); person.score = 99; console.log("person name is:", person.name, "score is:", person.score); </script> </head> </html>

程序运行后,控制台输出如下:

06_JavaScript工厂方法创建对象.png

我们首先创建了一个函数 createPerson,该函数接受三个参数,这三个参数就是对象的属性,同时函数里面还有一个函数,该函数就是对象的方法。

同时,在 createPerson 函数里面,我们通过 new Object 创建了一个 person 对象,接着,给 person 对象设置属性,并最后返回创建的 person 对象。

最后,我们通过 createPerson 方法创建了一个 person 对象,并且调用了 person 对象的 sayHi 方法。同时,我们看到,通过工厂方法创建的对象,同样支持动态的添加属性。

JavaScript工厂方法创建对象总结

在 JavaScript 中,我们可以通过工厂方法的方式来创建一个对象,通过工厂方法创建对象其实也是通过自定义一个函数,然后赋予它对象的思想。