Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OOP类对象继承_Javascript_Oop_Inheritance_Instance_Prototypal Inheritance - Fatal编程技术网

Javascript OOP类对象继承

Javascript OOP类对象继承,javascript,oop,inheritance,instance,prototypal-inheritance,Javascript,Oop,Inheritance,Instance,Prototypal Inheritance,下面的Javascript代码输出: 员工{姓名:“希拉”,性别:“女”,“经理:员工,{工作:工作} 如何修复它以使其输出: 员工{姓名:“希拉”,性别:“女”,经理:“皮埃尔”,职务:“软件工程师”} 不确定是否有吊装问题。 我应该修正哪一行,以便#经理是“皮埃尔”而#工作是“软件工程师” 问题是打印对象的类型而不是值。Job和Manager需要一个toString函数来打印值而不是类型,请参见“Job”属性是一个对象。您可以给它一个.toString()方法,这样当它被记录时,它就可以生成

下面的Javascript代码输出: 员工{姓名:“希拉”,性别:“女”,“经理:员工,{工作:工作}

如何修复它以使其输出: 员工{姓名:“希拉”,性别:“女”,经理:“皮埃尔”,职务:“软件工程师”}

不确定是否有吊装问题。 我应该修正哪一行,以便#经理是“皮埃尔”而#工作是“软件工程师”


问题是打印对象的类型而不是值。Job和Manager需要一个toString函数来打印值而不是类型,请参见“Job”属性是一个对象。您可以给它一个
.toString()
方法,这样当它被记录时,它就可以生成您喜欢的字符串。
class Person{                   
    #name;              
    #gender;                

    constructor(name, gender) {             
        this.#name = name;          
        this.#gender = gender;          
    };              
                    
    setName(name) {             
        this.#name = name;          
    };              
                    
    getName() {             
        return this.#name;          
    };              
                    
    setGender(gender) {             
        this.#gender = gender;          
    }               
                    
    getGender() {               
        return this.#gender;            
    };              
}                   
                    
class Employee extends Person{                  
    #manager;               
    #job;               
                    
    constructor(name, gender, manager, job) {               
        super(name, gender);            
        this.#manager = manager;            
        this.#job = job;            
    };              
                    
    setManager(manager) {               
        this.#manager = manager;            
    }               
                    
    getManager() {              
        return this.#manager;           
    }               
                    
    setJob(job) {               
        this.#job = job;            
    }               
                    
    getJob() {              
        return this.#job;           
    }               
}                   
                    
class Job {                 
    #title;             
                    
    constructor(title) {                
        this.#title = title;            
    };              
}                   
                    
const softwareEngineer = new Job("software engineer");                  
                    
const keith = new Employee("keith", "male");                    
                    
const pierre = new Employee("pierre", "male");                  
                    
const sheila = new Employee("sheila", "female", keith, softwareEngineer);                   
                    
sheila.setManager(pierre);                  
console.log(sheila);