Создание нескольких преимуществ и недостатков между объектами JavaScript

JavaScript общие объекты несколько способов создания: конструктор Object, Object буквального шаблон, шаблона растений, пользовательский режим конструктора, а также прототип комбинированного режима конструктора, каждый из них имеют свои преимущества и недостатки и сценарии использования.

1. Объект конструктор Модель

  • Сценарии использования: начальные неопределенные данные в пределах объекта.
  • Минусы: Слишком много заявлений
     var p = new Object()
        p.name = 'tom'
        p.age = 12
        p.steName = function (name) {
            this.name = name
        }

2. Режим литерал объекта

  • Сценарии применения: объект данных, определенные в начале.
  • Минусы: При создании нескольких объектов, дублировать код.
var p = {
            name: 'jack',
            age: 13,
            setName: function (name) {
                this.name = name
            }
        }

3. Завод шаблон

  • Сценарий применения: необходимость создания нескольких объектов.
  • Минусы: объект не имеет определенного типа типа объекта.
function createPerson (name,age) { //返回一个对象的函数就是工厂函数
            var obj = {
                name: name,
                age: age,
                sstName: function (name) {
                    this.name = name
                }
            }
            return obj
        }

4. Нестандартная модель конструктора

  • Сценарии использования: необходимость создания нескольких типов объектов, идентифицированных.
  • Недостатки: Каждый объект имеет одни и те же данные (метод), трата памяти.
function Person (name,age) {
            this.name = name
            this.age = age
            this.setName = function (name) {
                this.name = name
            }
        }
        var p1 = new Person('tom',15)
        var p2 = new Person('jack',14)
        console.log(p1 instanceof Person) //true p1是Person类型

        function student (name,grade) {
            this.name = name
            this.grade = grade
        }  

        var s1 = new student('peter',6)
        console.log(s1 instanceof student) //true s1是student类型

        console.log(p1,p2)

уценка

p1 и p2 имеют каждый имеет метод же SetName (), в результате чего отходы памяти.

Прототип модели конструктора +

  • Сценарии использования: Для создания нескольких типов объектов, определенных
function Person (name,age) {
           this.name  = name
           this.age = age
       }
       Person.prototype.setName = function (name) {
           this.name = name
       }

       var p1 = new Person('tom',12)
       var p2 = new Person('jack',13)

       console.log(p1,p2)

уценка

Метод объекта помещается на верхней части прототипа избегая впустую памяти.

рекомендация

отwww.cnblogs.com/yuanchao-blog/p/10973342.html
рекомендация