JS创建对象

  • new Object()
  • 对象字面量
  • 工厂模式
  • 构造函数模式
  • 原型模式(关于原型链)
  • es6 Class

new Object()

        var person=new Object();
        person.name="hh";
        person.age=11;
        person.sayName=function () {
            alert(this.name);
        }

对象字面量

        var person={
            name:"hh",
            age:11,
            sayName:function () {
                alert(this.name)
            }
        }

工厂模式

        function createPerson(name, age){
            var o=new Object();
            o.name=name;
            o.age=age;
            o.sayName=function () {
                alert(this.name);
            }
            return o;
        }
        var person=createPerson('hh',11);
        person.sayName();

构造函数模式

        function Person(name, age) {
            this.name = name;
            this.age = age;
            this.sayName = function () {
                alert(this.name);
            }
        }
        var person = new Person('aa', 11);
        person.sayName();
原型模式
        function Person() {
        }
        Person.prototype.name="hh";
        Person.prototype.age=11;
        Person.prototype.sayName=function () {
            alert(this.name);
        }

        var person=new Person();
        person.sayName();
        function Person(name, age) {
            this.name = name;
            this.age = age;
        }
        Person.prototype.sayName = function () {
            alert(this.name);
        }

        var person = new Person("aa", 11);
        person.sayName();

es6 class

        class Person {
            constructor(name, age) {
                this.name = name;
                this.age = age;
            }

            sayName() {
                alert(this.name);
            }
        }
        var person = new Person("dd", 11);
        person.sayName();

你可能感兴趣的:(JavaScript)