js面向对象基本理解和三种创建方式

面向对象的语言有一个标志,那就是他们都有类的概念,通过类可以创建任意多个具有相同属性和方法的对象。

但是在ECMAScript中没有类的概念,但是我们可以通过其他方式来模拟面向对象的类。

工厂模式:工厂模式是软件工厂领域中一种广为人知的设计模式。

构造函数模式:比如像ECMAScript中的Array、Object、Date等都是通过构造函数来创建的。

//1.工厂模式
      function Person(name,age,sex){
        var obj = new Object();
        obj.name = name;
        obj.age = age;
        obj.sex = sex;
        obj.sayName = function(){
          console.log(this.name);
        }
        return obj;
      }
      var p = Person('小一',20,'男');
      console.log(p.age);
      p.sayName();


      //2.构造函数模式
      function Person(name,age,sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.sayName = function(){
          console.log(this.sex);
        }
      }

      var p = new Person('小儿',25,'女');
      console.log(p.age);
      p.sayName();

      //3.js的方式创建对象方式
      function Person(name,age,sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.sayName = function(){
          console.log(this.sex);
        }
      }

      //1.当作构造函数去使用
      var obj = new Person('小儿',25,'女');
      console.log(obj.sex);

      //2.当作一个普通函数去调用
      Person('小儿',25,'女');  //在全局环境里定义属性并赋值,直接定义在window上
      console.log(name);

      //3.利用call apply方式
      var o = new Object();
      Person.call(o,'老大',123,'男');
      console.log(o.age);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值