Я учусь JavaScript ... извините ...Изменение свойств объекта из функции
Пример:
var car = {
brand : 'fiat'
}
$(window).resize(function(){
car.brand = 'audi';
})
console.log(car.brand)
Как я могу получить 'ауди'?
Я учусь JavaScript ... извините ...Изменение свойств объекта из функции
Пример:
var car = {
brand : 'fiat'
}
$(window).resize(function(){
car.brand = 'audi';
})
console.log(car.brand)
Как я могу получить 'ауди'?
Значение меняется! Но давайте немного поднимемся. Согласно API документации Jquery по поводу resize()
Событие изменения размера посылается в окно элемента, когда изменение размера окна браузера:
car.brand
не будет установлен в 'audi'
до событие изменения размера запускается. Сценарий будет продолжать выполнять до конца и записывать начальное значение для car.brand
, потому что окно не было изменено.
Спасибо за ваш ответ. Я продолжаю получать «фиат». Пожалуйста, проверьте: https://jsfiddle.net/luiscornejo/neem5yah/ –
Это отличный ответ. (Я бы дважды повысил, если мог). @LuisCornejo, код внутри вашей функции не запускается до тех пор, пока окно не изменится. В момент, когда запущен 'console.log', окно не изменилось, поэтому значение' car.brand' не изменилось. –
Позвольте мне дать вам хронологию событий:
car
определяется с brand
из 'fiat'
.window
resize
Событие. (Функция не работает здесь, так car.brand
остается такой же, как когда он был определен.)car.brand
записывается в консоль. (На данный момент, это 'fiat'
.)Если вы хотите, чтобы войти значение: 'audi'
, вы можете использовать что-то вроде этого:
var car = {
brand : 'fiat'
}
$(window).resize(function() {
car.brand = 'audi';
console.log(car.brand); // It will log 'audi' here.
})
console.log(car.brand) // It will log 'fiat' here.
Бревно внутри функции resize
не будет работать до тех пор, при изменении размера окна, так что вы увидите что-то вроде этого в консоли:
'fiat'
, а затем после того, как вы измените размер окна:
'fiat'
'audi'
Точно @jsve! Вот в чем вопрос. В этом примере единственный способ запустить console.log изнутри window.resize(), я знаю. Но я хочу изменить значение свойства объекта из события изменения размера. Я работаю в плагине слайдера, и я сделал объекты для разных видовых экранов (через matchmedia), которые позволяют изменять конфигурацию столбцов ... Он отлично работает, но когда изменяется размер окна, мне нужно перезагрузить страницу, и это Плохо. http://luiscornejo.com/cornislider3 –
Вот мое предложение. Создайте функцию, которая получает высоту и ширину окна (viewport) и соответственно настраивает отображение.Затем вызовите эту функцию, когда страница загружается и когда страница изменяется. –
Спасибо, jsve, я пробовал! (Извините, мне нужно изменить свойство объекта вне функции внутри функции) –
Вы не можете получить 'audi'. 'console.log()' запускается во время загрузки, но вы меняете значение только при изменении размера окна ... остановитесь, чтобы надеяться увидеть его и попробовать что-то еще! –