初识javascript自定义对象的七大方式
来源:互联网 发布:石榴算法 编辑:程序博客网 时间:2024/05/22 05:32
/**javascript的自定义对象 工厂模式、构造函数模式、原型方式、混合构造函数和原型方式、动态原型方式、混合工厂方式、JSON格式创建对象*//**1 工厂方式*///概念:先创建对象,再添加属性和方法// 问题:// 1.会重复生成函数// 2.不能通过构造函数传参来初始化值function createPerson() { var personObj = new Object(); personObj.name="我是杨过"; personObj.say=function () { alert("你好啊,"+this.name); } return personObj;}//使用var person1 = createPerson();person1.say();//解决构造函数传参的问题// 问题:// 1.会重复生成函数function createPerson(name) { var person= new Object(); person.name=name; person.say=function () { alert("我是:"+this.name); } return person;}//使用var person11 = createPerson("so");person11.say();/**================================================================================================================*//**2 构造函数方式*///类名大写,无需new对象// 问题:会重复生成函数function Person(name) { this.name=name; this.say = function () { alert("我是--"+this.name) }}//使用var person = new Person("so");person.say();/**================================================================================================================*//**3、原型方式*///prototype、空构造函数,属性和方法分配给prototype属性、不会重复生成函数//问题:不能通过构造函数传参来初始化值function Person() {}Person.prototype.name="Jhone";Person.prototype.say=function () { alert("I am "+this.name);}//使用var person = new Person();person.say();/**===========================================================================================================*//**4、混合构造函数和原型方式*///定义:构造函数初始化对象的属性,原型方式定义对象的方法//优势:函数在创建一次,同时每个对象都拥有自己的对象属性实例//问题:编码方式不够友好--有些属性定义在构造函数之内,而有些属性定义在构造函数之外,不太符合逻辑function Person(name) { this.name=name;}Person.prototype.say=function () { alert("我还是:"+this.name)}//使用var person = new Person("so");person.say();/**=======================================================================================================*//**5、动态原型方式*///解决编码友好的问题//解释:属性在构造函数中定义,方法在prototype上定义function Person(name) { this.name=name; if(typeof Person.initialized=="undefined"){ Person.prototype.say=function () { alert("动态原型方式:"+this.name) } Person.initialized=true; }}/**====================================================================================================*//**6、混合工厂方式*///哑构造函数、返回另一种对象类型的新的实例function Person() { var oPerson = new Object(); oPerson.name="混合工厂"; oPerson.say=function () { alert("我是"+this.name); } return oPerson;}//使用与工厂方式不同,可以使用new运算符var person = new Person();/**==========================================================================================*//**7、JSON格式创建对象*///可以说是工厂方式的一种快捷表示方法var personObj = { name:"名字", age:"23", sex:"男", tellAge:function () { alert("i am old is"+this.age); }}
0 0
- 初识javascript自定义对象的七大方式
- JavaScript自定义对象的方式
- 创建JavaScript自定义对象的方式
- 初识Javascript的面向对象
- javascript面向对象的初识
- javascript 自定义对象的几种方式和注意点
- javascript中的创建自定义对象的六种方式详解
- javascript中的创建自定义对象的六种方式详解
- javascript中的创建自定义对象的六种方式详解
- javaScript中自定义对象(类的定义方式)
- JavaScript创建自定义对象的三种方式
- javascript为对象添加自定义方法的几种方式
- 初识面向对象设计--七大原则概述
- javascript的自定义对象
- javascript的自定义对象
- javascript的自定义对象
- JavaScript的自定义对象
- 【JavaScript】(7)js中自定义对象的方式(模拟Java中面向对象建模)
- Crystal Reportsは小数点以下の表示方法を固定だれていません
- 23. Merge k Sorted Lists
- 缺省的Servlet
- Failed to read candidate component class: file [E:\apache-tomcat-7.0.73-wind
- CentOS7安装redis
- 初识javascript自定义对象的七大方式
- 读书笔记《Unix编程艺术》二
- 虚拟机类加载机制总结
- msql 过滤HTML标签函数
- 《虚拟化与云计算》笔记(一)
- 初学编程---高效编程
- io多路复用 select
- 内存泄漏与内存溢出总结
- redis 有序集合