300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JavaScript如何用工厂模式和构造函数来创建对象?

JavaScript如何用工厂模式和构造函数来创建对象?

时间:2024-03-16 08:07:52

相关推荐

JavaScript如何用工厂模式和构造函数来创建对象?

web前端|js教程

JavaScript,js,构造

web前端-js教程

探讨一下面向对象中的几个概念:1.一切事物皆对象,2.对象具有封装和继承特性,3.对象与对象之间使用消息通信,各自存在信息隐藏。

易语言织梦标签源码,vscode上传图片,ubuntu 栏,tomcat公网运行,sqlite有哪些字段类型,浏览器插件开发怎么用jquery,前端现在常用的框架有哪些,python爬虫能下载视频么,php if endif,SEO之间的关系,.net 拍卖网站源码,网页弹出提示代码,joomla 免费模板 评lzw

1、工厂模式

麻将游戏源码这么能玩,vscode字体特效插件,ubuntu安装mac,tomcat外网ip访问,sqlite3能合并吗,网页设计实例教程,shopex 数据库版本不符,服务器巡检教程,图片放大旋转插件,前端开发需要什么框架软件,爬虫爬不出来,php limit,seo相关词,springboot并发性,帝国cms自定义标签,仿小米网站源码,网页小游戏触屏版,公益网站模板,蓝色扁平化后台模板,自定义页面 设计师模版,java web学生管理系统源码,叶片建模matlab程序下载lzw

ECMAScript 可以通过工厂模式来创建对象:

设备管理系统网页源码,vscode换编程语言,ubuntu tls下载,tomcat集群调优,sqlite转换为浮点数,灰色的像千足虫的小爬虫,php 判断日期字符串,运城谷歌seo营销公司,网站后台公告id,dreamweaver中文模板下载lzw

//工厂模式function createObject(name, age) { var obj = new Object(); //创建对象 obj.name = name;//添加属性 obj.age = age; obj.run = function () { //添加方法 return this.name + this.age + 运行中...; }; return obj; //返回对象引用};var obj1 = createObject(Lee, 100);//创建第一个对象var obj2 = createObject(Jack, 200);//创建第二个对象//alert(obj1.run());//打印第一个对象实例的run()方法//alert(obj2.run());//打印第二个对象实例的run()方法//alert(typeof obj1);//alert(typeof obj2);alert(obj1 instanceof Object); //truealert(obj2 instanceof Object); //true

通过工厂模式创建的对象,解决了重复实例化问题,但对象识别问题无法解决(所有对象均是Object),因此要想解决对象识别问题,我们采用下面的构造函数。

2、构造函数

//构造函数创建function Person(name,age){ //所有构造函数对象都是Object this.name=name; this.age=age; this.run=function(){ return this.name+this.age+"ing..."; };};var person1=new Person(zhu1,100);var person2=new Person(zhu2,200);alert(person1.run());alert(person2.run());alert(person1 instanceof Object); //turealert(typeof person2); //Personalert(person2 instanceof Person); // truevar person3=new Object();Person.call(person3,zhu3,300);//对象冒充,person3是Object类型,冒充Person类型alert(person3.run());

构造函数中this:代表当前作用域对象的引用,如果在全局范围this代表window对象,如果在构造函数体内,就代表当前构造函数所声明的对象。

构造函数方法,及解决了重复实例化问题,有解决了对象识别问题,对比跟工厂方法不同之处可知:

1.构造函数方法没有显示的创建对象(new Object());

2.直接将属性和方法值赋值给this;

3.没有return 语句;

4.但是使用构造函数创建必须使用new运算符;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。