У меня есть конструктор и я пытаюсь иметь массив функций внутри своего прототипа, но мне нужны функции, чтобы обладать областью объекта, созданной конструктором, а не областью массива , Я попытался использовать .bind (это) или .bind (_p), но «это» - область узла узла, а _p - просто прототип без переменных.функции внутри массива, чтобы игнорировать область массива
function BoardModel() {
this.x = 3
this.y = 2
}
_p = BoardModel.prototype;
_p.skillFunctions = [
function(){
console.log(this.x); //undefined
},
function(){
console.log(this.y); //undefined
},
];
Если вы хотите использовать эти функции для любого объекта, созданного с помощью конструктора, то почему бы просто не передать им ссылку на объект? – Azamantes
Вы имеете в виду всякий раз, когда я вызываю любую из функций, чтобы просто передать объект в качестве параметра? возможно, я думаю, надеялся на более естественное решение. – Fuseques
© Maayan Blum Вы можете просто добавить эти функции к прототипу, как и любой другой метод, и иметь свойство на прототипе (или созданном объекте, если вы хотите настроить), содержащий массив имен функций, которые вы хотите вызвать. Затем вы просто перебираете массив и вызываете метод, подобный 'this [methodName]();' – Azamantes