如何创建构造函数中第二个属性依赖第一个属性的类?
解决方案
方案一:构造函数内先初始化数组再计算属性
先在构造函数里完成chromosome数组的初始化,再基于它计算fitness_val的值,确保访问时数组已经存在:
class YourClass { constructor() { // 先初始化chromosome数组(替换成你的生成逻辑) this.chromosome = [1, 0, 1, 0]; // 基于已初始化的chromosome计算fitness_val this.fitness_val = this.calculateFitness(); } calculateFitness() { // 这里编写你的适应度计算逻辑,直接通过this访问chromosome return this.chromosome.reduce((total, gene) => total + gene, 0); } }
方案二:将fitness_val设为动态计算的getter属性
如果需要fitness_val随chromosome的变化自动更新,可以把它定义为getter,每次访问时都会基于当前数组重新计算:
class YourClass { constructor() { this.chromosome = [1, 0, 1, 0]; // 初始化数组 } get fitness_val() { // 每次访问该属性时,实时计算适应度 return this.chromosome.reduce((total, gene) => total + gene, 0); } } // 使用示例 const obj = new YourClass(); console.log(obj.fitness_val); // 输出2 obj.chromosome = [1, 1, 1]; console.log(obj.fitness_val); // 输出3
Python版本示例
如果使用Python,逻辑完全一致:
class YourClass: def __init__(self): self.chromosome = [1, 0, 1, 0] self.fitness_val = self.calculate_fitness() def calculate_fitness(self): return sum(self.chromosome)
核心要点就是保证chromosome在fitness_val初始化或计算前已经被赋值,这样就能正常访问到数组内容。
内容的提问来源于stack exchange,提问作者ujs23la
相关产品推荐
相关产品推荐

