var globalSong = 0;
var a = function (song) {
console.log(song);
};
globalSong++;
a(globalSong);
function send(type, data, callback) {
$.ajax({
method: "POST",
url: "send.php",
data: {
type: type,
data: data
},
success: function(result) {
callback(null, result);
},
error: function(error) {
callback(error);
}
});
}
send("type", "123", (error, res) => {
if (error) {
console.error(error)
return undefined;
}
console.log(res);
});
function getFIO(name, surname, patronymic) {
this.name = name,
this.surname = surname,
this.patronymic = patronymic,
this.sayHello = function() {
console.log(`Меня зовут ${this.surname} ${this.name} ${this.patronymic}`);
}
}
var getFio = new getFIO('Юрий', 'Горячев', 'Александрович');
getFio.sayHello();
var getFio = new getFIO('Юрий', 'Горячев', 'Александрович');
var sayHello = getFio.sayHello;
sayHello() // в this теперь не объект getFio, а undefined
// или
someElement.addEventListener('click', getFio.sayHello, true) // контекст опять потерялся
function getFIO(name, surname, patronymic) {
var that = this // сохранили контекст в локальной переменной
this.name = name,
this.surname = surname,
this.patronymic = patronymic,
this.sayHello = function() {
console.log(`Меня зовут ${that.surname} ${that.name} ${that.patronymic}`); // теперь как бы ни вызвали эту функцию она всегда будет брать контекст из замыкания
}
}
// или
function getFIO(name, surname, patronymic) {
var sayHello = function() {
console.log(`Меня зовут ${this.surname} ${this.name} ${this.patronymic}`);
}
this.name = name,
this.surname = surname,
this.patronymic = patronymic,
this.sayHello = sayHello.bind(this) // явно указываем контекст выполнения функции
}
const object = {};
const newArray = []
arr1.forEach(item => object[item.id] = item) // перегоняем первый массив в объект, где ключи объекта id элемента
arr2.forEach(item => {
const objectItem = object[item.id];
if (objectItem !== undefined) {
const mergeItem = Object.assign({}, objectItem, item);
newArray.push(mergeItem);
object[item.id] = undefined;
}
})
Это будет быстрее чем вложенный цикл по второму массиву.
window.onload = function () {
if (document.getElementById('visTest').style.display == "none") // нужно передать конкретный id, это просто пример
{
document.getElementById('visTest').style.display = "block";
}
};
// переменная variable рандомится раз в секунду
var variable = 0;
var int = setInterval(function() {
variable = Math.random();
}, 1000);
// функция запускает интервал с проверкой argument > 0.5
function checker() {
var int = setInterval(function() {
if(variable > 0.5) {
console.log('переменная "variable" больше 0.5');
clearInterval(int);
};
}, 1000);
}
// запускаем проверку variable > 0.5;
checker();
$(function(){
var $element = $('#resp1:has(.free_domain)')
if ($element.length) {
$element
.css('cursor', 'pointer');
.on('click', function () {
window.open('http://yandex.ru', '_blank');
});
} else {
console.log('Элемент не содержит класс free_domain');
}
});
private _requestSuccess(data) =>{
this.doRequest = false;
this.currentPage++;
this.onRecordsLoaded(data);
}
public getRecords = () :void =>{
this.doRequest = true;
//здесь this - ссылка на Pagination
return new Request({
url: this.url + this.currentPage,
type: `GET`,
dataType: this.requestDataType,
onRequest: this._requestSuccess.bind(this)
}).exec();
};
@Injectable()
export class ApiService {
private _http: Http
constructor() {
this.injector = ReflectiveInjector.resolveAndCreate([Http]); // автоматически разрешает зависимости и заменяет new Http()
this._http = this.injector.get(Http) // получаем синглтон в пределах инжектора https://angular.io/docs/ts/latest/guide/hierarchical-dependency-injection.html
}
}
findPage = function(req, json, cb) {
db.pages.find({
url: req
}, function(err, docs) {
if (err) cd(err);
console.log(docs);
json = docs; // Искомые данные для страницы
cb(null, json)
});
};
app.use(function *() {
'use strict';
var json, req;
req = this.request.url;
console.log(req);
findPage(req, json, function(err, data) {
if (err) throw err;
page = this.render('index', {page: data}, true) // рендер страницы
});
});