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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • title: js面向对象date: 2017年8月17日 18:58:05updated: 2017年8月27日...
    lu900618阅读 598评论 0 2
  • 创建对象 对象是无序属性的集合,其属性可以包含基本值,对象或者函数,即由若干个“键值对”(key-value)构成...
    LeoCong阅读 185评论 0 0
  • 大家好,我是IT修真院深圳分院第01期学员,一枚正直纯洁善良的web程序员。 今天给大家分享一下,修真院官网JS(...
    老菜菜阅读 1,300评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,964评论 2 17
  • ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是...
    lovelydong阅读 679评论 0 2