Этот код может помочь вам
var sr = $("#Search Result");
sr.load("AJAX-Search.aspx?q=" + $("#q")
.val() + "&rnd=" + String((new Date).getTime())
.replace(/\D/gi, ""));
Начиная с InheritedB extends B
, создание экземпляра InheritedB предоставляет ему атрибут val
, который по умолчанию является «старым» для любого нового экземпляра класса B или подкласса.
Здесь InheritedB
печатает свой собственный атрибут val
, а не атрибут окружающего B.
Разница в том, что в классе InnerB
нет члена val
. где класс InheritedB
расширяет класс B и имеет собственную копию члена val
.
void run(){
val = "new"; //<--- modifies B's val not InheritedB's val
System.out.println(val); // outputs: new
new InnerB().printVal(); // outputs: new
new InheritedB().printVal(); // outputs: old new
}
В вышеприведенном кодовом блоке printVal InnerB обращается к члену контейнера val
, значение которого уже было изменено в методе run
для присвоения значения new .
Но копия val в объекте InheritedB по-прежнему имеет значение « old », не измененное, и функция printVal использует это значение.