JS高级-对象

对象:特质的某个事物,具有属性和方法(一组无序的属性的集合)
特征---->属性
行为---->方法

三种创建对象的方法
    var per1 = {
        name:'haha',
        age:12,
        eat:function(){
            console.log('吃吃吃');
        }
    }

    var per2 = new Object();
    per2.name = 'hehe';
    per2.age = 12;
    per2.eat = function (){
        console.log('吃个屁');
    }

    // 自定义构造函数
    function Person(name,age){
        this.name = name;
        this.age = age;
        this.eat = function(){
            console.log(this.name + '真贪吃');
        }
    }
    var per3 = new Person('laal',13);

    // 工厂模式
    function createPerson(name,age){
        var Obj = new Object();
        Obj.name = name;
        Obj,age = age;
        Obj.sayHi = function(){
            console.log('你好');
        }
        return Obj;
    }
    var per4 = createPerson('呵呵哒',18);
工厂模式和自定义构造函数

共同点:

都是函数,都可以创建对象,都可以传入参数

不同点:

工厂模式:

函数名是小写

有new

有返回值

new之后的对象是当前的对象

直接调用函数就可以创建对象

自定义构造函数:

函数名首字母是大写

没有new

没有返回值

this是当前的对象

通过new的方式来创建对象

实例对象和构造函数

实例对象是通过构造函数来创建的,创建的过程叫做实例化

如何判断对象是不是这个数据类型

1. 实例对象.构造器===构造函数名字

2. 对象 instanceof 构造函数名字

尽可能使用第二种方式来识别,因为某些实例对象的构造器可能会指向Object

你可能感兴趣的:(JS高级-对象)