微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript 构造函数方式定义对象

javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性

代码如下:

属性名:方法名 也是可以的.因为函数本身就是个对象

javascript 数组排序

代码如下:

javascript中定义对象的几种方式(javascript中没有类的概念,只有对象 )

第一种方式: 基于已有对象扩充其属性方法

代码如下:
属性和方法 var object=new Object(); object.username="zhangsan"; object.sayName=function (name){ this.username=name; alert(this.username); } alert(object.username); object.sayName("lisi"); alert(object.username);

这种方法具有局限性,因为javascript不像java那样具有类的概念,写一个类,之后new就可以得到一个具有了这些属性方法的对象了。

这时如果要拥有object2就只能把上面来的代码再写一份,这是不太好的。

第二种方式: 工厂方式

类似于java中静态的工厂方法

代码如下:

上面这种方式创建对象有弊端(每个对象都有一个get方法,从而浪费了内存),改进后的工厂方式( 所有对象共享一个get方法):

代码如下:

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

代码如下:

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

prototype是object对象中的属性,所有person对象也可以拥有prototype这个属性

可以给对象的原型增加一些属性方法

单纯的使用原型方式创建对象的缺点:①无法传参数,只能在对象创建后再改变它的值

②可能会导致程序错误

代码如下:

单纯使用原型方式定义对象无法再构造函数中为属性赋初值,只能在对象生成后再去改变属性值。

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

对象之间的属性互不干扰 各个对象之间共享同一个方法

代码如下:

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

在构造函数中通过标志量让所有对象共享一个方法,而每个对象拥有自己的属性

代码如下:

原文地址:https://www.jb51.cc/js/56527.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐