В приведенном ниже javascript «this» относится к объекту Car, а search_id относится к текстовому полю ввода с идентификатором «search_input». Таким образом, в основном пользователь вводит текст в поле, и поиск происходит на основе ввода. Теперь я понимаю, что метод val () получает пользовательскую строку ввода из поля ввода. Однако я не уверен, что делает двоеточие в методе split (). Я всегда думал, что метод split () просто помещает запятую, когда вы передаете в нее пустую строку. И затем оказывается, что разделенная переменная содержит массив строк, разбитых на входные данные. Однако зачем нам передавать первую разбитую строку в массиве строк (splitted [0]) и вторую строку (splitted [1]), а затем передавать ее в переменную string_to_scope? В основном это в процессе построения поиска. И вот эти три строки, я не уверен, что происходит:
var splitted = jQuery(this.search_id).val().split(": ");
if (splitted[0] && splitted[1]){
if (string_to_scope[splitted[0]]) ret[string_to_scope[splitted[0]]] = splitted[1];
Вот еще контекст:
Car.prototype.filter_func=function(){
var ret={};
var string_to_scope = {
'Year': 'year_num_eq',
'Make': 'make_name_eq',
'Description': 'description_eq',
'Expiry': 'expires_on_eq'
};
var search_value = jQuery(this.search_id).val();
if(search_value != null && search_value.length > 0){
var splitted = jQuery(this.search_id).val().split(": ");
if (splitted[0] && splitted[1]){
if (string_to_scope[splitted[0]]) ret[string_to_scope[splitted[0]]] = splitted[1];
}
}
return ret;
};
Спасибо за любой ответ.