https://abdulapopoola.com/2013/03/30/static-and-instance-methods-in-javascript/
В читальном коде вю образца, часто мы видим функцию Vue.xx или $ vm.yy функция не ясно, в чем разница между этими двумя.
Google позже обнаружил на самом деле есть существенные различия.
Мы знаем, что модель наследования яваскрипт и Java, PHP и другие программирования объектно-ориентированные языки имеют очень большое значение
JS является типичным слабо типизированным языком, а не класс класса реального класса, класс находится в самом факте является объект построения функции. Давайте создадим новый объект, используя новый вызов конструктора, который фактически имитирует чувство ООП но помните: модель JS наследование и традиционные Javas, PHP отличается!
Во-первых, есть статическое свойство свойство / экземпляр этой вероятности. Все свойства объекта (this.xx) являются общественность, thisobj.xx можно получить непосредственно через. Конечно, мы можем конструктор функции (то есть класс класс определение) добавляется так, что соответствующее ключевое слово вар собственности в частные, для этого типа частной собственности, мы должны иметь возможность доступа путем определения аксессоров и сеттеры.
// Конструктор вар Person = функция (имя, возраст) { // частные свойства вар собств = {}; // Общественные свойства этого .name = имя; это .age = возраст; // Общественные методы этой .sayHi = функция () { Alert ( 'привет' ); } } // статический метод; этот метод только // существует в классе и не существует // на дочерние объекты Person.sayName = функция () { предупреждение ( "Я объект Person;)" ); }; // Метод экземпляра; // Все объекты Person будет иметь этот метод Person.prototype.setName = функция () {nameIn это .name = nameIn; } // Тесты вар за = новый Person ( 'John Doe', 22 ); // Показывает предупреждения Person.sayName (); // TypeError: Object [объект Object] не имеет какого - либо метода '' sayName per.sayName () // Показать Уведомления per.sayHi (); // John Doe per.name; // 22 per.age; per.setName ( 'Jane Doe' ); // Jane Doe per.name;
Обратите внимание , что определение статических свойств или методов в свойстве класса (конструктор) не доступно в контексте экземпляра экземпляра. Но язык Java в этот момент несколько иная, доступна в экземпляре контекста в Java статические методы или свойства. Это выглядит очень странно, потому что экземпляр объекта и никаких объектов, переменные
Здесь я цитирую инструкцию Java:
"
Вы также можете получить доступ к статической эталонной модели объекта метода, такие как:
myBike.numberOfBicycles
"
Наконец, мы рассмотрим Vuejs плагин в нескольких использованиях, мы можем контролировать выше так называемые статические и методы экземпляра зрения:
MyPlugin.install = функция (Вью, опции) { // 1. добавить глобальный метод или свойство Vue.myGlobalMethod = функция () { // некоторая логика ... } // 2. добавить глобальный актив Vue.directive ( 'мой -directive» , { связывания (Е.Л., связывание, vnode, oldVnode) { // некоторая логика ... } ... }) // 3. инъекционные некоторые параметры компонента Vue.mixin ({ создано: функция () { // какая - то логика ... } ... }) //4. добавить метод экземпляра Vue.prototype. $ MyMethod = функция (methodOptions) { // некоторая логика ... } }