【发布时间】:2019-10-23 11:00:48
【问题描述】:
我开始从事原型设计,但我缺少很多知识。
目前我有一个案例。我用数组创建新对象作为员工的价值,每个员工都有年龄属性。我想在我的函数内部扩展数组映射,这样我就可以通过特定函数迭代和更改值,称为 increaseAge。
function increaseAge(amount) {
this.age += amount;
}
function Administration(employees) {
this.employees = employees;
Array.prototype.increaseAge = function(amount) {}
}
const newAdministration = new Administration([{ age: 1}, { age: 1}]);
newAdministration.employees.increaseAge(1);
console.log(newAdministration)
如何通过调用 increaseAge 为每个员工增加特定值的结果? 掌握 JavaScript 这门学科的最佳知识来源在哪里?
【问题讨论】:
-
employees将是一个数组。所以你必须使用索引或循环访问。 (newAdministration.employees[0].increaseAge(1);) -
不要做
Array.prototype.increaseAge = function(amount) {}。有一个更好的方法可以解决您的问题(无论如何将这个赋值放在构造函数中是没有意义的)。你到底想达到什么目的?请详细说明问题。 (例如,你想增加所有员工的年龄还是只增加其中一名员工的年龄?如果是后者,你想如何选择哪一名?等等) -
@sandrooco:不,
increaseAge不存在于数组内的对象上。 -
@FelixKling +1。不要修改 javascript 默认对象。
-
@wudoem:如果您要问的话,有多种方法可以遍历数组。如果你想为每个年龄添加
1,你可以做employees.forEach(e => e.age += 1)。
标签: javascript oop prototype