2017-12-11js创建对象

创建对象

1)直接new一个关键字

        var obj = new Object();

2)对象字面量

            2.1 简单字面量

                var obj2 =  {};

                obj2.name = "ben";

                obj2.todo = function() { }

            2.2 嵌套字面量

                var  obj3 = {

                    name: 'xiaoming',

                    age : 23,

                    todo: function(){

                        console.log(this.name);

                      },

                    address: 'GZ'

                }

            类似于键值对 key = value

                            key 什么时候需要引号

                            名字里面有空格   连字付 保留字

            函数声明和函数表达式 

                函数声明:  funciton add1(){ }

                函数表达式: var  add2 = function(){ }

               二者区别,函数声明可以先调用后声明;函数表达式需要先声明后调用

3)构造函数

        特点:构造函数的首字母大写

        创建构造函数

        例:function Person(name,age){

             this.name = name,

             this.age =age

            this.todo =function(){

                 return  this.name

             }

        }

实例化对象(可以实例化多个)

var  person  =  new  Person(‘xiaoming’,20);

var person1 = new Person("xiaoming2", 30);

打印:console.log(person.name) => xiaoming

this指向实例化以后的person


    普通函数

    例: function  funName() { return name;}  ==> funName("xiaoming");

    工厂模式

    function person1(){

        var obj = new Object();

        obj.name = name;

        obj.age = age;

        return obj;

    }

    var a1 = person1("xiaoming", 26 );

构造函数和普通函数的区别

    1,this的指向不同:构造函数指向实例化以后的名字,普通函数是谁调用,就指向谁

    2,调用方式不同

    3,构造函数名字需要大写,普通函数标准写法是小驼峰(funName)

你可能感兴趣的:(2017-12-11js创建对象)