js创建对象的六种方式

首先 对象是指无序的属性的合集,key不重复,value为任何数据类型
表现方式{‘key’;value,‘key2’:value2,}

: 表示映射 = 表示赋值

单独创建一个对象有两种方法
a. new Object()

var x="age";
var obj= new Object();
    obj.name="zhao"
    obj.x=18;
    obj[x]=20;
    console.log(obj);
    

b. 字面量方式

 var x="hooby";
        var obj={ "name":"gao","age":18 };

            obj.sex="男";
            obj[x]="唱歌"
            obj.say= function (){

            }
        console.log(obj);
        

创建多个对象有四个方法
c. 工厂模式
1、创建函数
2、传入参数
3、函数内创建对象
4、retrun 对象

function students(name,age){
            var obj={
                "name":name,
                "age":age,
                "say":function(){
                }
            }
            return  obj;

d. 构造函数
优点: 有从属
缺点: 代码重复(相同方法)、
共识:构造函数首字母大写

构造函数写法:
1、创建函数
2、传入参数
3、this.属性名 = 值

function Students(name,age){
            this.name= name;
            this.age= age;
            this.say=function(){
            }
        }

e. 原型对象
优点就是公共相同的属性方法不重复,并且有从属关系
缺点是原型上的属性不可以单独修改

function Funn(){

         }
         Funn.prototype.name="liu"
         Funn.prototype.age=18
         var obj7=new Funn();
         console.log("obj7",obj7);
         obj7.__proto__.name="zhao"
         console.log("obj7-name",obj7.__proto__.name);
         var obj8=new Funn();
         console.log("obj8",obj8);
         obj8.__proto__.age=27
         console.log("obj8-age",obj8.__proto__.age);

f. 组合模型
优点:代码不重复,有从属关系

function Fn(name,age){
  this.name=name;
  this.age=age;
}
// 方法 定义在 构造函数的 原型对象上
Fn.prototype.say=function(){
  console.log("哈哈哈哈哈");
}

var obj1= new Fn("gao",12);
var obj2= new Fn("王",19);

console.log("obj1",obj1);
console.log('obj2', obj2);


obj1.say();
obj2.say();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值