JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】

发布时间:2017-04-13 15:44:27 编辑:站点网
这是最基本的方式,但是也存在和工厂方式一样的毛病。3.原型方式://用空函数创建一个类 function Obj(){ } //在类的原型链上添加属性和方法 Obj.prototype.name="xxx"; Obj.prototype.say=function(){ alert("我是xxx"); } //生成对象 var obj1=new Obj();这个方式的缺点是,当有引用属性时,改变一个对象的这个属性也会改变其他对象的这个属性。因为一个引用属性,都是指向的同一个地方。4.原型/构造联合方式//用构造函数定义对象的非函数属性 function Obj(name){ this.name=name; this.arr=new Array('a','b'); } //用原型方式定义对象的方法 Obj.prototype.say=function(){ alert("我是xxx"); } //生成对象 var obj1 = new Obj('xxx');这种是目前用的最多的创建类和对象的方式,将方法和属性用不同的方式封装。5.动态原型方式//动态原型方式和原型/构造混合方式的原理相似,唯一的区别就是赋予对象方法的位置 function Person(name, sex) { this.name = name; this.sex = sex; if (typeof this.say != "function") { Person.prototype.say = function () { alert(this.name); } } } var man =new Person ("凯撒", "男"); man.say();//凯撒动态原型模式是将所有的信息都封装到构造函数中,构造函数中,只用say不存在的情况下,才会将它添加到原型中。这段代码只有在初次调用时才会执行。实例化obj对象有三步:1. 创建obj对象:obj=new Object();
更多相关内容:
    无相关信息
[!--temp.cy--]