Передача параметров в качестве аргументов в OOP - PullRequest
0 голосов
/ 16 января 2020

Я только начал учиться OOP. Я все еще пытаюсь понять, как все работает. Я пытаюсь создать новую функцию, которая в основном позволит мне создать новый объект путем передачи параметров указанного класса.

Возможно ли это вообще, и если да, то что я делаю не так?

Как уже говорилось, все еще учусь, поэтому любые советы будут оценены.

class Person {
  constructor(name) {
    this.persName = name;
  }
  myName() {
    return "My name is " + this.persName;
  }
}

function getPers(_perName, fullName) {
  _personName = new Person(fullName);
}

$(document).ready(function() {
  getPers(John, "John Doe");
});

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Да, вы можете взять fullname в качестве параметра для вашей функции и передать его в вызываемый метод или конструктор OOP.

Но вы не можете взять ссылку " переменной »в качестве аргумента, как вы пытались с _perName / _personName. Вместо этого используйте ключевое слово return, чтобы вернуть созданный объект:

function createPerson(fullName) {
  return new Person(fullName);
}

$(document).ready(function() {
  var john = createPerson("John Doe");
  … // use john
});
0 голосов
/ 16 января 2020

Вы можете выполнить следующий пример. Обратите внимание, что не так много логи c init. Пример только для того, чтобы показать вам, как может работать OOP. Конечно, есть много других и лучших способов добиться этого, но с первой же попытки его стоит использовать.

class Person {
    //declare the constructor with required name values and optional age value
    constructor(firstName, lastName, age = 0) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }

    //declare a typically setter, e.g. for age
    setAge(age) {
        this.age = age;
    }

    //declare a getter for the person with age
    getPerson() {
        return this.firstName + ' ' + this.lastName + ' is ' + this.age + ' years old.';
    }
}

//here you got with some function within you need to define a new person
function getCreatedPerson(firstName, lastName, age = 0) {
    //define the person with required firstname and lastname
    const person = new Person(firstName, lastName);
    //use the setter to set age of person
    person.setAge(age);
    //return the person by using the person getter
    return person.getPerson();
}

//here you can call the createdPerson function
$(document).ready(function() {
    console.log(getCreatedPerson('John', 'Doe', 32));
});

Надеюсь, это немного поможет понять, как это может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...