Да, первый - это static method
, также называемый class method
, а второй - instance method
.
Рассмотрим следующие примеры, чтобы понять это более подробно.
В ES5
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
Person.isPerson = function(obj) {
return obj.constructor === Person;
}
Person.prototype.sayHi = function() {
return "Hi " + this.firstName;
}
В приведенном выше коде isPerson
является статическим методом, а sayHi
является методом экземпляра Person
.
Ниже описано, как создать объект из конструктора Person
.
var aminu = new Person("Aminu", "Abubakar");
Использование статического метода isPerson
.
Person.isPerson(aminu); // will return true
Использование метода экземпляра sayHi
.
aminu.sayHi(); // will return "Hi Aminu"
В ES6
class Person {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
static isPerson(obj) {
return obj.constructor === Person;
}
sayHi() {
return `Hi ${this.firstName}`;
}
}
Посмотрите, как было использовано ключевое слово static
для объявления статического метода isPerson
.
Чтобы создать объект класса Person
.
const aminu = new Person("Aminu", "Abubakar");
Использование статического метода isPerson
.
Person.isPerson(aminu); // will return true
Использование метода экземпляра sayHi
.
aminu.sayHi(); // will return "Hi Aminu"
ПРИМЕЧАНИЕ. Оба примера по существу одинаковы, JavaScript остается бесклассовым. class
, введенный в ES6 , является прежде всего синтаксическим сахаром над существующей моделью наследования на основе прототипа.
Django-debug-toolbar помогает получать больше информации о ваших сигналах. Просто объявите их в своих настройках.
Нам нужно зарегистрировать наш сигнал из функции AppConfig.ready()
. ссылка и здесь нам нужно подключить наш сигнал. Надеюсь, что это решит вашу проблему. Еще одна дополнительная вещь, если ваше приложение не является частью INSTALLED_APPS
, не забудьте добавить init .py
Я хотел бы добавить дополнительную ссылку [ 114], пожалуйста, пройдите раздел Where Should the Code Live?
, чтобы устранить ваши сомнения.