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

来源:互联网 发布:手机消音软件 编辑:程序博客网 时间:2024/06/06 05:51

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

但是在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
原创粉丝点击