Как добавить пользовательское свойство в Quasar? - PullRequest
1 голос
/ 22 марта 2020

Я хочу добавить пользовательские свойства в платформе Quasar, но при его установке ESlint показывает мне эту ошибку: Array prototype is read only, properties should not be added

Я хочу добавить метод расширения для Array:

Array.prototype.extend = function (other_array) {
    /* You should include a test to check whether other_array really is an array */
    other_array.forEach(function(v) {this.push(v)}, this)
}

1 Ответ

1 голос
/ 22 марта 2020

Когда вы расширяете объект, вы изменяете его поведение.

Изменение поведения объекта, который будет использоваться только вашим собственным кодом, вполне подойдет. Но когда вы изменяете поведение чего-то, что также используется другим кодом, есть риск, что вы нарушите этот другой код.

Здесь вы можете создать функцию и импортировать ее:

помощников. js

let extend = function(other_array) {
  return other_array.forEach(function(v) {this.push(v)}, this)
}

export default extend;

componentA. vue

import extend from './helpers.js';

// use extend as a normal function

или мы могли бы быть немного умнее и используйте нативные методы, которые Javascript уже имеет:

// will 'glue' two arrays together
firstArray.concat(secondArray);

// or using new ECMA syntax (spread operator)
finalArray = [...firstArray, ...secondArray];
...