欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Object-创建对象常用的六种方法

程序员文章站 2022-04-19 11:16:09
Object-创建对象常用的六种方法话不多说,上代码!!! 创建对象的常用的6种方法

Object-创建对象常用的六种方法

话不多说,上代码!!!

1.对象实例化

        //1对象实例化-(没对象?new一个不就完了^v^,>o<)
        var a = new Object();

2.字面量声明法

        //2字面量声明
        var b = {
            name:'张三';
        }

3.工厂模式

        //3 工厂模式
        function aa(name,age){
            //1) 原材料
            var bb = new Object();
            bb.name = name;
            bb.age = age;
            //2)加工
            bb.create = function(){
               console.log('我的名字是'+ bb.name+"年龄"+bb.age);
            }
            // 3)完工把对象返回出去
            return bb;
        }
        var zhangsan = aa('张三',18);
        var lisi = aa('李四',20);
        // console.log(zhangsan);
        // console.log(lisi);
        // console.log(zhangsan.create());

4.构造函数

        //4 构造函数
        function bb(name,age){
            this.name = name;
            this.age = age;
            this.create = function(){
               console.log('我的名字是'+ this.name+"年龄"+this.age);
            }
        }
        var ccc = new bb('赵六',21);
        var bbb = new bb('赵六',21);
        // console.log(ccc.create == bbb.create);
        //构造函数和工厂模式区别
        // 工厂模式里面要 new 一个对象 ,还需要return 这个对象

5.原型对象

        //5 原型对象
       function ooo(name,age){
           ooo.prototype.name = name;
        //    this.age = age;
       }
       var pp = new ooo('张三',19);
       var ll = new ooo('李四',20);
       console.log(pp.name == ll.name);  // true
       console.log(pp.age == ll.age);
       console.log('------');
       console.log(pp);
       console.log(ll);
       console.log('------');

6.混合模式(原型加构造函数)

        //6 混合模式(原型加构造函数 )
        function bb(name,age){
            this.name = name;
            this.age = age;
            this.create = function(){
               console.log('我的名字是'+ this.name+"年龄"+this.age);
            }
        }
        bb.prototype.run=function(){
            console.log(this.name+"会跑");
        }
        var eee = new bb();
        var ttt = new bb();
        // console.log(eee.run == ttt.run);
        console.log(eee.__proto__);
        console.log(bb.prototype);
        console.log(bb.prototype == eee.__proto__);
        eee.__proto__.abc=function(){
            alert('abc');
        }
        console.log(bb.prototype);
        var nnn = new bb();
        console.log(nnn);

小结:
// _proto_ 这是对象里面的原型添加方法
// prototype 这是构造函数里面的原型添加方法

本文地址:https://blog.csdn.net/yuan_xiaoxin/article/details/109353290

相关标签: js总结