// Это объявление объекта.
// В качестве ключа может выступать идентификатор или примитив (строка или число).
{
// Если для ключа вы используете строку в которой нет специальных символов,
// то строку можно не выделять кавычками:
key: 'value',
// А если они есть, то надо выделять:
'complex-key': 'some other value',
// Если не выделять, то при выполнении возникнет синтаксическая ошибка:
complex-key: 0,
// Строка без кавычек трактуется как идентификатор, то есть имя переменной.
// Следовательно, если не выделять value кавычками, то свойству key будет
// присвоено значение сохраненное в переменной value, если она существует:
key: value
}
// объявление объекта
let obj = {
// объявление свойства trampapam и присваивание ему функции
trampapam: function() {
// объявление переменной tratata в глобальном объекте, в window
tratata = false;
}
};
// выполнение метода trampapam, в результате которого в window появляется свойство tratata
// после чего безуспешная попытка присваивания результату (undefined) свойства tratata
obj.trampapam().tratata = true;
class Emitter {
constructor() {
var delegate = document.createDocumentFragment();
[
'addEventListener',
'dispatchEvent',
'removeEventListener'
].forEach(f => {
if (f !== 'dispatchEvent') {
this[f] = (...xs) => delegate[f](...xs)
} else {
this[f] = (eventName, ...xs) => delegate[f](new Event(eventName), ...xs)
}
})
}
}
// sample class to use Emitter
class Example extends Emitter {}
// run it
var e = new Example()
e.addEventListener('something', event => console.log('Something is happened!'))
e.dispatchEvent('something')
toSend() {
let data = { param1: this.param1 };
this.http.post('site.com', data).then(res => {
if (res.data.check == true) {
this.$refs.form.submit();
} else {
console.log('some error');
}
})
}
function PromiseTimeOut(delay) {
return new Promise((resolve, reject) => {
setTimeout(resolve, delay);
});
}
var target = {
value: null,
setValue(value) {
this.value = value;
}
};
var proxy = new Proxy(target, {
get(target, prop) {
return target[prop];
},
set(target, prop, value) {
target[prop] = value;
return true;
}
});
async function demo() {
proxy.setValue('I have no idea what i\'m doing');
await PromiseTimeOut( 1000 );
console.log( proxy.value );
}
demo();
// Promise, а через секунду
// "I have no idea what i'm doing"
// Создаёте карту
var map = new google.maps.Map(...);
// Инициализируете утилиты для работы с маршрутами
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
// Привязываете вашу карту к утилитам
directionsDisplay.setMap(map);
directionsDisplay.setPanel(panel_element);
// Создаёте объекты точек маршрута
var start = new google.maps.LatLng(...);
var finish = new google.maps.LatLng(...);
// Формируете запрос для сервиса маршрутов
var request = {
origin: start,
destination: finish,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
// С помощью утилиты DirectionsService посылаете запрос
directionsService.route(request, function(response, status) {
// При успешном выполнении запроса передаёте рендереру результат
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
'53.085622, 70.307219'
или [53.085622, 70.307219]
, но не ручаюсь. Впрочем, на все вопросы связанные с приведенным кодом смело можно искать ответы в документации.