javascript构造函数方法定义一个对象

javascript构造函数方法定义一个对象
Javascript是一种动态语言,可以在运行时将属性添加到对象中,也可以将删除(删除)属性添加到对象中。

复制代码代码如下所示:

*

01。定义对象的第一种方式。

对象=新对象();

警报(对象用户名);

1.1添加属性用户名

对象{用户名liujianglong} =;

/ /对象。用户名为liujl ;

警报(对象用户名);

1.2删除属性用户名

删除object.username; / /用户名属性已被删除的对象

警报(对象用户名);

* /

02。以第二种方式定义对象——Javascript中定义对象的最常用方式之一

var对象= {姓名:zhangsan

警报(对象名称);

警报(对象,年龄);

警报(对象,性别);


属性名称:该方法的名称也是可能的,因为函数本身是一个对象。

Javascript数组排序

复制代码代码如下所示:

var array = { 1,3,25 };



VaR的比较函数(num1,num2){

无功temp1 = parseInt(num1);

VaR temp2 = parseInt(num2);

如果(temp1 < temp2){

返回- 1;

} else if(temp1 = = temp2){

返回0;

其他{ }

返回1;

}

}

/ / array.sort(比较); / / 01。函数名是对象引用。



02。匿名函数

Array.sort(函数C(num1,num2){

无功temp1 = parseInt(num1);

VaR temp2 = parseInt(num2);

如果(temp1 < temp2){

返回- 1;

} else if(temp1 = = temp2){

返回0;

其他{ }

返回1;

}

});



警报(阵列);


在Javascript中定义对象的几种方法(Javascript中没有类的概念,只有对象)

第一种方法:基于现有对象展开其属性和方法

复制代码代码如下所示:
01。基于现有对象扩展其属性和方法

对象=新对象();

对象。用户名为zhangsan;

对象。sayname =函数(名){

这个用户名=名字;

警报(此用户名);

}

警报(对象用户名);

object.sayname(思);

警报(对象用户名);
这种方法有一定的局限性,因为Javascript没有像java类的概念和写一个类。然后,新的可以获得这些属性和方法的对象。

如果你想拥有object2,你只能写一份上面的代码,这是非常不好的。

第二种方式:工厂模式

类似于静态工厂方法在java。

复制代码代码如下所示:

对象/工厂方法

CreateObject函数(){ var =

对象=新对象();

对象。用户名为zhangsan;

对象密码123;

对象=获取函数(){

警报(此用户名+

}

返回对象;

}

Var obj1=createObject ();

var obj2 = CreateObject();

obj1.get();

2 修改密码

obj2 {密码} =123456;

obj2.get();


上面的方法有创建对象的缺点(每个对象都有get方法,这会浪费内存)。改进的工厂模式(所有对象共享get方法):

复制代码代码如下所示:

所有对象共享

var =函数(){

警报(此用户名+

}

对象/工厂方法

var =函数CreateObject(用户名、密码){

对象=新对象();

对象;

对象。密码=密码;

对象获取;注意:此方法不写入括号。

返回对象;

}

以工厂方法创建对象

VaR object1 = CreateObject(zhangsan

VaR object2 = CreateObject(丽丝

调用get方法

object1.get();

object2.get();


第三种方法:构造函数方法定义对象

复制代码代码如下所示:

var =函数(){

警报(此用户名+

}

功能人(用户名,密码){

在执行第一行代码时,js引擎将为我们生成一个对象。

这个用户名=用户名;

密码=密码;

这个=获取=获得;

在这里,有一个隐藏的返回语句,用于返回结果对象{这里是和工厂模式不一样的地方。

}

无功的人=新的人(zhangsan

person.get();


第四种方式:原型(原型)创建对象的方式

原型是对象对象中的一个属性,所有的人对象也可以具有原型的属性。

您可以向对象的原型、方法添加一些属性。

简单地使用一个原型来创建一个对象的缺点:(1)不能传递参数,只能在创建对象之后改变它的值。

(2)可能导致程序错误。

复制代码代码如下所示:

功能人(){

}

的人。原型。用户名为zhangsan;

人。原型。密码=123;

的人。原型。GETINFO =函数(){

警报(此用户名+

}

VaR甲=新的人();

var 2 =新的人();

甲。用户名为丽丝;

person1.getinfo();

person2.getinfo();


复制代码代码如下所示:

功能人(){

}

原型。用户名=新数组();

人。原型。密码=123;

的人。原型。GETINFO =函数(){

警报(此用户名+

}

VaR甲=新的人();

var 2 =新的人();

person1.username.push(wanglaowu );

person1.username.push(wanglaowu2 );

2。密码为456;

person1.getinfo();

person2.getinfo();


简单地使用原型定义对象不能在构造函数中赋予属性的初始值,并且只能在生成对象之后更改属性的值。

第五种方法:使用原型+构造函数定义对象——推荐使用

物体的属性不互相干扰。

在不同对象之间共享相同的方法

复制代码代码如下所示:

使用/原型+方式定义对象构造函数

功能人(){

在构造函数中定义的属性

这个用户名=新数组();

这个密码= 123;

}

在原型中定义的方法

的人。原型。GETINFO =函数(){

警报(此用户名+

}

新的人();

新的人();

p1.username.push(zhangsan);

p2.username.push(思);

p1.getinfo();

p2.getinfo();


第六种方式:动态原型-推荐使用

在构造函数中,所有对象都由一个方法由标志量共享,并且每个对象都有自己的属性。

复制代码代码如下所示:

var =函数(用户名,密码){

这个用户名=用户名;

密码=密码;

如果(typeof的人。旗= =未定义){

警报();

的人。原型。GETINFO =函数(){

警报(此用户名+

}

人,旗帜=真的;

}

}

VaR P1 =新的人(zhangsan

VaR P2 =新的人(丽丝

p1.getinfo();

p2.getinfo();

tag:构造函数一个对象方法定义电脑软件

相关内容