租房小程序源码_JavaScript创建对象方法实例小结

  • 栏目:行业动态 时间:2021-01-08 12:55 分享新闻到:
<返回列表

JavaScript创建对象方法实例小结       这篇文章主要介绍了JavaScript创建对象方法,结合实例形式总结了javascript创建对象的基本原理及使用工厂模式、构造函数模式与原型模式创建对象的相关实现技巧,需要的朋友可以参考下

本文实例讲述了JavaScript创建对象方法。分享给大家供大家参考,具体如下:

最简单的方式就是创建一个Object对象,并为其添加属性和方法。

//示例代码
var person=new Object()
person.name="yumi"
person.age=18
person.job="coder"
person.sayName=function(){
 alert(this.name)
person.sayName()//输出yumi

这种方式使用同一个接口创建多个对象,会出现大量重复代码。

1.工厂模式

JavaScript中无法创建类,我们可以用函数来封装以特定接口创建对象的细节。

//示例代码
function createPerson(name,age,job){
 var o=new Object();
 o.name=name;
 o.age=age;
 o.job=job;
 o.sayName=function(){
 alert(this.name)
 return o;
var person1=createPerson("yumi",18,"coder");
var person2=createPerson("echo",21,"player");
person1.sayName();//输出yumi
person2.sayName();//输出echo

工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别问题,即怎样知道一个对象的类型。

2.构造函数模式

可以创建自定义的构**造函数,从而定义自定义对象类型的属性和方法。

//示例代码
function Person(name,age,job){
 this.name=name;
 this.age=age;
 this.job=job;
 this.sayName=function(){
 alert(name);
var person1=new Person("yumi",18,"coder");
var person2=new Person("echo",21,"player");
person1.sayName();//输出yumi
person2.sayName();//输出echo

创建出的对象既是Object的实例,也是Person的实例,也就是说将来我们可以将它的实例标识为特定类型,这也是优于工厂模式的地方。但是构造函数模式也有缺点,即就是每实例化一个对象,对象方法都会创建一遍,我们可以按如下方法稍加改进:

//示例代码
function Person(name,age,job){
 this.name=name;
 this.age=age;
 this.job=job;
 this.sayName=sayName;
function sayName(){
 alert(name);
var person1=new Person("yumi",18,"coder");
var person2=new Person("echo",21,"player");
person1.sayName();
person2.sayName();

将函数拿到构造函数外部,构造函数内部将sayName属性设成全局sayName函数(一般单独的函数名存放的是指向该函数的指针,而函数名加括号为该函数的执行结果)。但这样做,暴露出的问题是:全局作用域中定义的函数只能被某一个对象调用,不符合全局定义了。而且,如果某个对象有很多方法,这些方法都定义在全局作用域的话,也就没什么封装性可言了。

3.原型模式

前面我们说了,构造函数模式的缺点是属性或方法在构造函数作用域中只能被某个对象调用,想想我们在其他面向对象语言中的处理方式,是将公用的属性方法定义在父类中,然后通过继承父类调用。但是JavaScript中不存在类、继承这些概念,而是通过原型链实现“继承”。

下面就是我们要说的原型模式:

//示例代码
function Person(){
 Person.prototype.name"yumi";
 Person.prototype.age=18;
 Person.prototype.job=coder;
 Person.prototype.sayName=function(){
 alert(name);
var person1=new Person();
var person2=new Person();
person1.sayName(); //"yumi"
person2.sayName(); //"yumi"
alert(person1.sayName==person2.sayName); //true

无论什么时候,只要创建了一个新函数,就会为该函数创建一个prototype属性。默认情况下,所有prototype属性都会自动获得一个constructor(构造函数)属性。这个属性包含一个指向prototype属性所在函数的指针。也就是说,Person可以理解为一个类(实际是个函数),Person.prototype指向原型(原型中定义的方法或属性可以被对象调用,相当于一个共享区域),然后Person.prototype.constructor又指向了Person。实例化的对象有一个内部属性可以指向Person.prototype,但是不能指向构造函数constructor,跟其无关。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:测试上述代码运行结果。

更多关于JavaScript相关内容还可查看本站专题:《》、《》、《》、《》及《》

希望本文所述对大家JavaScript程序设计有所帮助。


分享新闻到:

更多阅读

租房小程序源码_JavaScript创建对象方法实

行业动态 2021-01-08
JavaScript建立目标方式案例总结 本文关键详细介绍了JavaScript建立目标方式,融合案例方式...
查看全文

广州凡科互联网科技股份有限公司招聘客

行业动态 2021-01-08
招聘人数:23职位信息岗位职责:1.通过在线和电话接待并处理用户的咨询需求、问题反馈等,...
查看全文

html网页设计实例-企业官网怎样才能提升

行业动态 2021-01-07
公司网站如何才可以提高在检索模块的排行? 惊云SEO 今年十月08日 11:07 100 0 目前公司网站站...
查看全文
返回全部新闻


区域站点: 南丰县主图制作软件   南宫市自动抠图   囊谦县图片加水印   南和县怎么p图   南华县主图制作软件   南江县自动抠图   南京市图片加水印   南靖县怎么p图   南康市主图制作软件   南乐县自动抠图   南陵县图片加水印   南宁市怎么p图   南平市主图制作软件   南皮县自动抠图   南市区图片加水印   南通市怎么p图   南投县主图制作软件   南雄市自动抠图   南溪县图片加水印   南阳市怎么p图   南漳县主图制作软件   南召县自动抠图   南郑县图片加水印   那坡县怎么p图   那曲县主图制作软件   纳雍县自动抠图   讷河市图片加水印   内黄县怎么p图   内江市主图制作软件   内丘县自动抠图   内乡县图片加水印   嫩江市怎么p图   聂荣县主图制作软件   尼玛县自动抠图   尼木县图片加水印   宁安市怎么p图   宁波市主图制作软件   宁城县自动抠图   宁德市图片加水印   宁都县怎么p图   宁国市主图制作软件   宁海县自动抠图   宁化县图片加水印   宁晋县怎么p图   宁陵县主图制作软件   宁明县自动抠图   宁南县图片加水印   宁强县怎么p图   宁陕县主图制作软件   宁武县自动抠图   宁乡市图片加水印   宁阳县怎么p图   宁远县主图制作软件   农安县自动抠图   磐安县图片加水印   盘锦市怎么p图   盘山县主图制作软件   磐石市自动抠图   盘州市图片加水印   蓬安县怎么p图   澎湖县主图制作软件   蓬莱市自动抠图   彭山县图片加水印   蓬溪县怎么p图   彭阳县主图制作软件   彭泽县自动抠图   彭州市图片加水印   偏关县怎么p图   平安县主图制作软件   平昌县自动抠图   平定县图片加水印   屏东县怎么p图   平度市主图制作软件   平果县自动抠图   平和县图片加水印   平湖市怎么p图   平江县主图制作软件   平乐县自动抠图   平凉市图片加水印   平利县怎么p图   平罗县主图制作软件   平陆县自动抠图   屏南县图片加水印   平泉市怎么p图   屏山县主图制作软件   平顺县自动抠图   平塘县图片加水印   平潭县怎么p图   平武县主图制作软件   萍乡市自动抠图   平乡县图片加水印   平阳县怎么p图   平遥县主图制作软件   平阴县自动抠图   平邑县图片加水印   平远县怎么p图   平舆县主图制作软件   皮山县自动抠图   普安县图片加水印   浦北县怎么p图   浦城县主图制作软件   普洱市自动抠图   普格县图片加水印   浦江县怎么p图   普兰县主图制作软件   普宁市自动抠图   莆田市图片加水印   迁安市怎么p图   乾安县主图制作软件   潜江市自动抠图   潜山市图片加水印  

友情链接: 一键抠图在线 在线ps抠图 在线ps抠图 免费做图

Copyright © 2002-2020 图片加水印_怎么p图_主图制作软件_自动抠图_抠图网址 版权所有 (网站地图) 备案号:粤ICP备10235580号