У меня проблемы с тем, как переменные-члены объектов работают в JavaScript.У меня есть эта функция, которая находит конкретную таблицу в HTML, и она, кажется, работает просто отлично.Но почему-то переменные-члены объекта, связанного с таблицей, становятся нулевыми ...
Я попытался отладить, и вот что я получил.
let tables;
function find_table(s) {
for(const table of tables){
if(table.prefix === s){
return table;
}
}
return null;
}
function search_table(table){
const tmp = find_table(table);
console.log(tmp.prefix); // debug0
tmp.search();
}
Внутри объекта, который называется "table ".
search(){
const search_text = $("#" + this.prefix + "_search_text").val().toLowerCase();
let item_count = 0;
$("#" + this.prefix +"_table tr").each(function () {
if (!$(this).hasClass("search_ignore")) {
let count = 0;
let show = false;
console.log(this.prefix); // debug1
for(const type of this.types){ // error here. this.types is undefined
const temp = $(this).find("td").eq(count).text().toLowerCase();
if(type === 0){
// 文字列検索
show = temp.includes(search_text)
}else if(type === 2){
...(the rest is probably irrelevant)...
Итак, я вызываю функцию search_table()
, чтобы найти таблицу в таблицах со строкой.Функция find_table()
вроде бы работает нормально.Строка debug0
возвращает "admin_account_list"
правильно.Но после этого, когда вызывается search()
таблицы, переменная this.types
почему-то превратилась в null
.И строка debug1
также возвращает null
.
Я ожидал, что она будет иметь значение, которое я присвоил при вызове конструктора.
Я был бы очень признателен, если бы кто-то помог мне понятьчто я тут не так сделал.