1.对象
- 特指的某个事物,具有属性和方法
- 特征:属性
- 行为:方法
- 创建对象方式
- 字面量的方式
- 调用系统的构造函数
- 自定义构造函数方式
//实例对象 ???var per1={ ?????name:"卡卡西", ?????age:20, ?????sex:"男", ?????eat:function () { ???????console.log("吃臭豆腐"); ?????}, ?????readBook:function () { ???????console.log("book"); ?????} ???};//调用系统的构造函数 ???var per2=new Object(); ???per2.name="大蛇丸"; ???per2.age=30; ???per2.sex="男"; ???per2.eat=function () { ?????console.log("吃榴莲"); ???};//自定义构造函数 ???function Person(name,age,sex) { ?????this.name=name; ?????this.age=age; ?????this.sex=sex; ?????this.play=function () { ???????console.log("天天打飞机"); ?????}; ???}
- 自定义构造函数的过程
- 创建对象---->实例化一个对象,的同时对属性进行初始化
- 开辟空间存储对象
- 把this设置为当前的对象
3.设置属性和方法的值
4.把this对象返回
1.工厂模型创建对象
function createObject(name,age) { ?????var obj=new Object(); ?????obj.name=name; ?????obj.age=age; ?????obj.sayHi=function () { ???????console.log("您好"); ?????}; ?????return obj; ???} ???function Person(name,age) { ?????this.name=name; ?????this.age=age; ?????this.sayHi=function () { ???????console.log("您好"); ?????}; ???} ???//创建对象---->实例化一个对象,的同时对属性进行初始化 ???/* ???* 共同点:都是函数,都可以创建对象,都可以传入参数 ???* ???* 工厂模式: ???* 函数名是小写 ???* 有new, ???* 有返回值 ???* new之后的对象是当前的对象 ???* 直接调用函数就可以创建对象 ???* ???* 自定义构造函数: ???* 函数名是大写(首字母) ???* 没有new ???* 没有返回值 ???* this是当前的对象 ???* 通过new的方式来创建对象 ???* ???* ???* */ ???var per1=new Person("小红",20); ???var per2=createObject("小明",20);
js对象
原文地址:https://www.cnblogs.com/yb161/p/10121418.html