Javascript——创建对象的三种方式

创建对象的三种方式
1.调用系统的构造函数创建对象
2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
3.字面量的方式创建对象

第一种方式:
实例化对象
var obj=new Object();
对象有特征——属性和行为——方法
添加属性:对象.名字=值;

    obj.name="老王";
    obj.age=30;
    obj.sex="男";
    //添加方法:对象.名字=函数;
    obj.eat=function(){
    	console.log("喜欢吃面条")
    };
    obj.cook=function(){
    	console.log("切菜");
    	console.log("刷碗");
    obj.play=function(){
    	console.log("喜欢打游戏和睡懒觉");
    };
    console.log(obj.name); //获取——输出
    console.log(obj.age);
    console.log(obj.sex);
    obj.eat();
    obj.play();

例:创建一个手机对象,手机有型号,有颜色,可以打电话发短信

var phone=new Object();
phone.size="P30";
phone.color="skyblue";
phone.call=function (){
    console.log("打电话");
};
phone.sendMessage=function(){
    console.log("摄像头是假的吗?是的");
};
phone.call();
phone.sendMessage();

例:创建一个狗的对象

var dog=new Object();
dog.name="哮天犬";
dog.say=function(){
    console.log("汪汪汪");
};

对象不能分辨出到底是属于什么类型↓
如何获取该变量(对象)是不是属于什么类型?
语法:变量 instanceof 类型的名字——>布尔类型,true就是这种类型,false不是这种类型

自定义构造函数创建对象
函数和构造函数的区别:名字是不是大写(首字母是大写)

1.在内存中开辟(申请一块空闲的)空间,存储创建的新的对象
2.把this设置为当前的对象
3.设置对象的属性和方法的值
4.把this这个对象返回

function Person( ){
	console,log("啊啊啊五月天")
}
Person( );
function Person(){
    this.name="老王";
    this.age=30;
    this.sayHi=function(){
        console.log("我叫"+this.name+"年龄是"+this.age);
    };
}
var obj=new Person();
console.log(obj.name);
console.log(obj.age);
obj.sayHi();

字面量的方式创建对象

var obj={};//空对象
//添加属性
obj.name="老王";
obj.age=10;
//添加方法
obj.sayHi=function(){
    console.log("我是"obj.name);
};
obj.sayHi();

优化后的写法

var obj2={
    name: "老王";
    age: 30,
        sayHi: function(){
        console.log("我是:"this.name);
},
eat: function(){
        console.log("吃了");
}
};
obj.sayHi();
obj.eat();

缺陷:一次性的对象

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页