Он создает новый объект, используя Box
в качестве своего конструктора. Значение this
в этом случае (когда функция вызывается с ключевым словом new
) - это создаваемый новый экземпляр. Этот новый объект наследует все, что определено как Box.prototype
(по умолчанию это Object.prototype
).
Я сказал в этом случае , потому что в JavaScript значение this
определяется тем, как вызывается функция. Я рекомендую прочитать страницу MDN на this
для получения дополнительной информации.
Примечание: если этот вопрос должен быть закрыт, он должен был быть дубликатом. Вот несколько возможных дублирующих ссылок, которые также могут помочь вам:
Вы должны использовать конструктор запросов gorm и передавать параметры в аргументах: Where(query interface{}, args ...interface{}) *DB
. Этого будет достаточно. Так как приведенные выше методы gorm изменяют внутреннее состояние создаваемого вами SQL-запроса, можно написать код, подобный этому:
var usersMasterList []UsersMaster // gorm Model
if filterBy != "all" {
controller.database.Where("role = ?", filterBy)
}
if searchBy != "" {
controller.database.Or("name ilike ?", search)
controller.database.Or("email ilike ?", search)
//...
}
//...
controller.database.Find(&usersMasterList)
Код не проверен. Вы можете прочитать больше здесь: http://gorm.io/docs/query.html
Или вы можете просто отфильтровать не алфавитно-цифровые символы из этих строк с помощью регулярного выражения:
[ 111]Настоятельно рекомендуем переписать ваш код как можно скорее, код будет более безопасным и читабельным.