
创建对象的最简单、最简单的方法是概述对象的文字对象的使用,或者动态地向空对象添加新成员。然而,除了这两种常用的对象创建方法之外,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设计模型中的对象工厂函数和构造函数的详细解决方案,希望大家喜欢。