-
2016-04-29 00:13:27
JavaScript创建对象
1、实现源码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JavaScript创建对象</title> <script type="text/javascript"> /** * 创建Person对象 */ function Person(name,sex,age,addr) { this.name = name; this.sex = sex; this.age = age; this.date = obDate(); this.addr = addr; this.findInfo = function(){ name = "姓名:" + name + "<br>"; sex = "性别:" + sex + "<br>"; age = "年龄:" + age + "<br>"; date = "生日:" + obDate() + "<br>"; addr = "地址:" + addr; document.writeln(name,sex,age,date,addr); }; } /** * 获取现在日期 */ function obDate() { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var thisDate = year + "-" + (month<10?"0"+month:month) + "-" + (day<10?"0"+day:day); return thisDate; } You = new Person("You","男","23","湖北省武汉市"); You.findInfo(); </script> </head> <body> </body> </html>
2、实现结果姓名:You 性别:男 年龄:23 生日:2016-04-29 地址:湖北省武汉市
更多相关内容 -
深入理解JavaScript创建对象的多种方式以及优缺点
2020-10-19 18:27:07本篇文章主要介绍了JavaScript创建对象的多种方式以及优缺点,主要介绍了5种方式,有兴趣的可以了解下 -
JavaScript创建对象方法实例小结
2020-10-18 02:55:01主要介绍了JavaScript创建对象方法,结合实例形式总结了javascript创建对象的基本原理及使用工厂模式、构造函数模式与原型模式创建对象的相关实现技巧,需要的朋友可以参考下 -
JavaScript创建对象的常用方式总结
2020-10-18 06:18:16主要介绍了JavaScript创建对象的常用方式,结合实例形式总结分析了javascript面向对象程序设计中对象创建的常见方式、相关操作技巧与注意事项,需要的朋友可以参考下 -
整理JavaScript创建对象的八种方法
2020-10-23 09:28:29JavaScript创建对象的方法有很多种,本文给大家介绍javascript创建对象的八种方法,对javascript创建对象感兴趣的朋友可以参考下本 -
JavaScript创建对象的方式小结(4种方式)
2020-10-23 03:42:03主要介绍了JavaScript创建对象的方式,结合实例形式总结分析了四种创建对象的方式,并附带分析了JavaScript对象复制的技巧,需要的朋友可以参考下 -
跟我学习javascript创建对象(类)的8种方法
2020-10-23 07:21:25跟我学习javascript创建对象(类)的8种方法,每一种方法都有详细的介绍,不知道javascript如何创建对象的朋友,不要错过这篇文章。 -
JavaScript创建对象的4种方法
2018-11-28 15:02:24JavaScript 创建对象的4种方法 所谓对象就是用来帮助你完成一些事情是,对象是有特征和行为的,是具体特指的某一个事物。使用对象可以使程序更加整洁 通过Object()方法来创建 Object()是JavaScript内部的对象...JavaScript 创建对象的4种方法
所谓对象就是用来帮助你完成一些事情是,对象是有特征和行为的,是具体特指的某一个事物。使用对象可以使程序更加整洁-
通过Object()方法来创建
Object()是JavaScript内部的对象,使用Object创建对象的语法:
我们通过Object创建的一个Dog对象,这个对象有name,color,eat属性;并且给这个对象定义了两个方法,因此我们想用这两个方法时可以直接通过 Dog.describe() Dog.language() 来访问,即 对象.方法
注意:注意这里不能用this.name 应该用Dog.name因为Object()是一个对象,我们的Dog也是创建出来的一个对象,所以用this会是undefined,但是Dog这个describe()方法中使用this就可以,因为是用过这个Dog对象构造出来的函数 -
同过字面量法创建对象
var 对象={name:“小明”,age:20,sex:“男”…} 这是字面量表示法的语法 ,缺点:一次性对象,不方便修改,不利于提高效率,一般不建议使用
优化版的创建对象,对象中的属性都是在一个整体中,便于访问加粗样式 -
通过自定义函数创建对象:就是自己定义一个函数,然后赋予它对象的思想。这个函数的名字首字母需要是大写的
要创建Image的新实例,必须要使用new 操作符。以这种方式调用构造函数实际上会经历一下4个步骤
(1)创建一个新对象,在内存中开辟一个空闲的空间
(2)将构造函数的作用域个给新对象(因此this就指向了这个新对象)
(3)执行构造函数中的代码(为这个新对象添加属性)
(4)返回新对象
优点:提高代码复用率,代码可以灵活调用,方便修改,自己传的参数是什么就是什么, 既解决的重复实例化的问题又解决了对象识别的问题
缺点:没有显示的创建对象,直接将属性和方法赋给了this对象,没有return语句 -
通过工厂模式创建对象
语法:function create 对象名() 这里我们用Object能够根据接受的参数来构建一个包含所有必要信息的 Object对象。可以无数次的调用这个函数,而每次它都会返回一个包含三个属性一个方法的对象。工厂模式虽然解决了创建多个相似对象的问题,但是却没有解决对象识别的问题(即怎样知道一个对象的类型)
-
-
必知!JavaScript创建对象的三种方式
2019-07-31 14:34:33方式1:调用系统的构造函数创建对象 表达式: var 变量名= new Object(); 例子: //实例化对象,创建对象 var obj = new Object(); //对象有特征和行为 (属性和方法) //添加属性-----如何添加属性? 对象...方式1:调用系统的构造函数创建对象
表达式: var 变量名= new Object();
例子: //实例化对象,创建对象 var obj = new Object(); //对象有特征和行为 (属性和方法) //添加属性-----如何添加属性? 对象.名字=值; obj.name = "小明"; obj.age = 38; obj.sex = "女"; //添加方法----如何添加方法? 对象.名字=函数; (匿名函数) obj.eat = function () { console.log("吃饭,这是一个方法"); }; obj.play = function () { console.log("我喜欢玩飞机模型"); }; console.log(obj.name);//获取--输出了 //方法的调用 obj.eat(); obj.play();
方式2:自定义构造函数创建对象
表达式: var 变量名 = new 自定义构造函数
函数和构造函数的区别: 名字是不是大写(构造函数首字母是大写的)例子: //自定义构造函数 function Person(name,age) { this.name = name; this.age = age; this.sayHi=function () { console.log("我叫:"+this.name+",年龄是:"+this.age); }; } //自定义构造函数创建对象:先自定义一个构造函数,然后new创建对象 var obj=new Person("小明",18); console.log(obj.name); console.log(obj.age); obj.sayHi(); var obj2=new Person("小红",20); console.log(obj2.name); console.log(obj2.age); obj2.sayHi();
方式3:字面量的方式创建对象
例子: //变量,数组 字面量方式创建的创建 /* var num = 10; var array = []; */ var obj = {}; //空对象 //添加属性 obj.name= "小白"; obj.age = 20; //添加方法 obj.sayHi = function () { console.log("我是"+this.name+"今年"+this.age+"岁") }; //末尾记得加 ; obj.sayHi(); 优化后的写法: /*多个属性方法用逗号隔开,最后的不用加逗号*/ var obj = { name:"小明", age:18, sayHi:function () { console.log("我是"+this.name+"今年"+this.age+"岁"); }, eat:function () { console.log("吃了"); } }; obj.sayHi(); obj.eat();
-
JavaScript 创建对象的几种方式
2018-07-13 09:43:41这里创建对象,主要介绍三种方式:工厂模式、构造函数模式、原型模式、组合使用构造函数模式和原型模式。1、工厂模式 工厂模式是用函数来封装创建对象的细节,在函数里面创建对象并返回对象。function createPerson...这里创建对象,主要介绍四种方式: 工厂模式、构造函数模式、原型模式、组合使用构造函数模式和原型 模式。
1、工厂模式
工厂模式是用函数来封装创建对象的细节,在函数里面创建对象并返回对象,就有些像工厂里的流水线一样。
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("a",29,"cc"); var person2 = createPerson("b",26,"cc");
但是工厂模式有个缺点,就是对象识别问题,即它不知道一个对象的类型。
2、构造函数模式
构造函数模式,即通过给构造函数传递不同的参数,然后调用构造函数来创建不同对象。
function Person(name,age,job){ this.name = name; this.age = age; this.job = job; this.sayname = function(){ alert(this.name); }; } var person1 = new Person("a",29,"cc"); var person2 = new Person("b",26,"cc");
使用自定义的构造函数,可以将它的实例标识为一种特定的类型,这正是构造函数模式胜过工厂模式的地方。
比如(instanceof用于检测对象类型):
person1 instanceof Person //true 这里可以看到person1也是Person的实例,而工厂模式没有能具体检测对象类型的这一特定 person1 instanceof Object //true 所有对象均继承自Object
构造函数模式的主要问题,就是每个方法都要在每个实例对象上重新创建一遍,j即使是同名方法或者两个方法的作用一样,而不同实例对象上的同名方法其实是不一样的,这样就造成了一种冗余,比如:
person1.sayname != person2.sayname
3、原型模式
有关原型和原型链的知识已经在点击打开链接介绍过了,这里不作过多介绍。
使用原型对象的好处就是,可以让所有对象实例共享它所包含的属性和方法。
这样一来,所有的属性和方法都是大家(所有实例)共享的了,换句话说,person1和person2访问的sayname和name等 都是同一个。function Person(){} Person.prototype.name="a"; Person.prototype.age="29"; Person.prototype.job="cc"; Person.prototype.sayname = function(){ alert(this.name); }; var person1 = new Person(); var person2 = new Person(); 这样person1.sayname == person2.sayname
还有就是重写原型的时候,切断了现有原型与任何之前已存在的对象实例之间的联系,它们引用的仍是最初的原型。可以通过在重写原型里添加constructor:Person来建立新联系。
原型模式的问题就是共享问题,在实例或原型上改变一下,在其他实例中都会相应的改变。这样我们引入组合使用构造函数模式和原型模式。
4、组合使用构造函数模式和原型模式
组合使用中,构造函数模式用于定义实例自己的属性,原型模式用于定于方法和共享的属性。function Person(name,age,job){ this.name = name; this.age = age; this.job = job; } Person.prototype = { constructor: Person, sayname: function(){ alert(this.name); } } var person1 = new Person("a",29,"cc"); var person2 = new Person("b",26,"cc");
这种构造函数与原型混合的模式,是目前使用较多的。其它创建对象的方式还有动态原型模式、寄生构造函数模式、稳妥构造函数模式。
-
JavaScript中创建字典对象(dictionary)实例
2020-10-24 11:16:45主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 -
JavaScript创建一个object对象并操作对象属性的用法
2020-10-24 12:42:21主要介绍了JavaScript创建一个object对象并操作对象属性的用法,实例分析了javascript使用object类定义对象及属性的用法,需要的朋友可以参考下 -
详解JavaScript基于面向对象之创建对象(2)
2020-10-23 04:26:45主要介绍了JavaScript基于面向对象之创建对象,详细的分析面向对象的原型方式以及其他综合的方式,感兴趣的小伙伴们可以参考一下 -
学习javascript面向对象 掌握创建对象的9种方式
2020-10-23 01:20:56主要为大家介绍了创建对象的9种方式,帮助大家更好地学习javascript面向对象,感兴趣的小伙伴们可以参考一下 -
function People(name, age){ // 如果this是People的实例 我们才可以使用this来赋值 if(this instanceof People){ this.name = name; this.age = age; }else{ // 不管什么方式调用,只要你的this不是People的...
-
Javascript 中创建自定义对象的方法汇总
2020-10-25 03:23:57主要汇总介绍了Javascript 中创建自定义对象的方法,需要的朋友可以参考下 -
javascript面向对象创建对象的方式小结
2020-10-16 15:27:09主要介绍了javascript面向对象创建对象的方式,结合实例形式总结分析了javascript常见的7种创建对象的方式,需要的朋友可以参考下 -
JavaScript中创建对象的模式汇总
2020-11-24 00:48:50**JavaScript创建对象模式: 对象字面量 工厂模式 构造函数模式 原型模式 结合构造函数和原型模式 原型动态模式 ** 面向对象的语言大都有一个类的概念,通过类可以创建多个具有相同方法和属性的对象。虽然从技术上... -
JavaScript面向对象程序设计创建对象的方法分析
2020-10-18 06:06:22主要介绍了JavaScript面向对象程序设计创建对象的方法,结合实例形式分析了javascript使用object构造函数和对象字面量来创建对象的相关操作技巧,需要的朋友可以参考下 -
JavaScript对象创建模式实例汇总
2020-10-21 10:04:59主要介绍了JavaScript对象创建模式,结合实例形式总结分析了JavaScript常见的对象创建模式,包括工厂模式、构造函数模式、原型模式、动态原型模式、寄生构造函数模式、稳妥构造函数模式等,需要的朋友可以参考下 -
JavaScript 三种创建对象的方法
2020-12-12 01:17:36JavaScript中对象的创建有以下几种方式: (1)使用内置对象 (2)使用JSON符号 (3)自定义对象构造 一、使用内置对象 JavaScript可用的内置对象可分为两种: 1,JavaScript语言原生对象(语言级对象),如String、... -
JavaScript 创建对象 (工厂模式、构造函数模式、原型模式、组合使用构造函数模式与原型模式)
2021-06-14 11:47:26JavaScript 创建对象工厂模式构造函数模式三级目录 总结JS创建对象的几个模式及各自优缺点 工厂模式 function createPerson(name,age,job){ var obj = new Object(); obj.name = name; obj.age = age; obj.job =... -
JavaScript创建对象模式
2017-03-15 17:26:37要在JavaScript中创建一个对象,最简单的是直接使用字面量来创建,可是这么做在对象较多时会产生大量重复的代码,由此引发了创建对象模式的产生。这些模式就是用来产生对象的。工厂模式批量产生js对象function ... -
Javascript创建类和对象详解
2020-10-19 18:43:10使用Javascript创建类和对象的方法有很多,现在就来列举一下:1、原始的创建方法,2、工厂方法模式,3、构造方法模式,4、动态原型方法。下面我们就来通过实例详细看下