对象工厂函数和Javascript设计模式构造器的详细解决方案

对象工厂函数和Javascript设计模式构造器的详细解决方案
文本详细分析和代码分析共享了对象工厂函数和Javascript设计模式的构造函数的以下知识。

创建对象的最简单、最简单的方法是概述对象的文字对象的使用,或者动态地向空对象添加新成员。然而,除了这两种常用的对象创建方法之外,Javascript还提供了创建对象的其他方法。1)。使用工厂函数创建一个对象,我们可以编写一个函数,它是创建一个可以使用的对象的函数。
总结

使用对象文本或动态添加新成员到空对象是创建对象的最简单、最简单的方法。

然而,除了这两种常用的对象创建方法之外,Javascript还提供了创建对象的其他方法。

1)。使用工厂函数创建对象

我们可以编写一个函数,函数的作用是创建一个对象,这个对象可以称为对象工厂方法。

复制代码代码如下所示:

工厂功能

功能createperson(姓名、年龄、工作){

新对象();

o.name =名称;

o.age =年龄;

o.job =工作;

o.sayname =函数(){

Console.info(这个名字);

};

返回;使用工厂来创建对象函数

甲= createperson VaR('zhang三,29,软件工程师);

var 2 = createperson(李四',40,'医生');
2)。定义对象构造函数

一)。对象构造函数的首字母大写

B)。该关键字的内部使用,以将成员添加到对象中

C)。使用新关键字调用对象构造函数

复制代码代码如下所示:

定义对象构造函数

功能人(姓名,年龄,工作){

this.name =名称;

this.age =年龄;

this.job =工作;

this.sayname =函数(){

Console.info(这个名字);

};

使用新的对象构造函数调用

VaR P1 =新的人('zhang三,29,软件工程师);

VaR P2 =新的人(李四',40,'医生');
构造函数以正常方式调用

构造函数实际上是一个函数。不同的是在调用它时必须添加一个新关键字。如果没有添加,对它的调用被认为是一个公共函数调用。

复制代码代码如下所示:

作为一个普通的函数调用构造函数,通过添加这个属性,

成为窗口对象的方法和属性。

console.info(窗口名称); / /张三

console.info(窗口。年龄); / / 29

console.info(窗口工作); / /软件工程师
对象构造函数像这样发展:

复制代码代码如下所示:

功能人(名称){

this.name =名称;

this.say =函数(){

返回我+ this.name;

};

}
事实上,这就是方法:

复制代码代码如下所示:

功能人(名称){



this.name =名称;

this.say =函数(){

返回我+ this.name;

};

返回;

}
构造函数所做的工作

1。创建一个新对象

2。让构造函数的引用指向这个新创建的对象

三.在构造函数中执行代码,它通常完成向新对象添加属性的工作。

4。将新创建的对象引用返回到外部世界。

对象构造函数和对象工厂方法之间的区别

在1中没有显式的对象创建代码。对象的构造函数

2。新对象应该具有的属性和方法由该引用添加。

3中没有返回语句。对象的构造函数

对象构造函数的缩写通常设置为大写,以区别于普通函数。

对象的构造函数属性

一)。使用对象工厂函数创建对象,并将每个对象的构造函数属性引用到对象()

复制代码代码如下所示:

无功的人= createperson('zhang三,29,软件工程师);

使用工厂方法创建对象,

它的构造函数属性引用对象()函数。

Console.info(person1.constructor =对象);

/真
B)。使用对象构造函数创建一个对象,每个对象的构造函数属性引用构造函数。

复制代码代码如下所示:

var p =新的人('zhang三,29,软件工程师);

使用对象构造函数创建对象,

每个对象的构造函数属性,引用构造函数

Console.info(p.constructor =人);

如何 / /真的不会忘记新的可以使用arguments.callee解决这个问题

了解arguments.callee / /角色

TestArgumentsCallee()函数

{

Console.info(本);

Console.info(这是testargumentscallee);

Console.info(这是论点。被叫方);

};

TestArgumentsCallee(); / /窗口

/ false

/ false

新的testargumentscallee();

/ / testargumentscallee

/真

/真
所以,你可以直接使用arguments.callee

复制代码代码如下所示:

避免遗忘

功能MyObject(价值)

{

如果(!(这是争论。被叫方))

{

如果调用方忘记添加新的,然后调用新的

返回MyObject(价值);

}

this.prop =价值;

}

测试

var obj1 =新的MyObject(100);

Console.info(obj1。道具); / / 100

var obj2 = MyObject(200);

Console.info(obj2。道具); / / 200
以上内容是javascript设计模型中的对象工厂函数和构造函数的详细解决方案,希望大家喜欢。

tag:对象函数工厂设计模式解决方案

相关内容