window.name = 'ByteDance'; function A () { this.name = 123; } A.prototype.getA = function(){ console.log(this); return this.name + 1; } let a = new A(); let funcA = a.getA; funcA();
async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2 start'); return new Promise((resolve, reject) => { resolve(); console.log('async2 promise'); }) } console.log('script start'); setTimeout(function() { console.log('setTimeout'); }, 0); async1(); new Promise(function(resolve) { console.log('promise1'); resolve(); }).then(function() { console.log('promise2'); }).then(function() { console.log('promise3'); }); console.log('script end') //为什么promise1 在async2 promise 前端输出; script end 为什么在setTimeout之前输出。