欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > js每日十题

js每日十题

2024/10/25 8:20:35 来源:https://blog.csdn.net/m0_61368323/article/details/139383904  浏览:    关键词:js每日十题

1. 6.2 第4题

请阅读以下代码

1

2

3

var obj = {};

obj.log = console.log;

obj.log.call(console,this);

该代码在浏览器中执行,输出的日志结果是什么?


答:

第二条代码表示 obj的log属性指向console的log函数,而console.log函数一般接收一个参数用于打印。

第三局代码使用call,改变this指向,指向console,传入参数this。obj.log.call(console,this)=console.log(this)

在函数里面的this指向console,但是打印的是从外面传进去的this对象,而this默认指向全局对象(window)。

所以输出window。


知识点:

1. this默认指向全局对象(window)

2. call()方法的第一个参数是函数内this的指向,第二个参数开始,一次被传入函数中。而且函数是立即执行的。

2. 6.2 第5题

function Person(age) {this.age = age;
}
Person.prototype = {constructor: Person,//指向persongetAge: function () {console.log(this.age);},
}
var ldh = new Person(24);  
//ldh = { age: 24 }
Person.prototype.age = 18; 
// Person.prototype = { 
//                   age: 18 ,
//                   getAge: function () {
//                        console.log(this.age);
//                   },
//}
Object.prototype.age = 20; 
// Object.prototype = { age: 20 }
ldh.getAge(); 
//ldh这个对象上没有getAge方法,就去构造函数的原型上找
//继承构造函数的原型上的getAge这个方法,this指向的是实例化对象ldh

 

3. Promise.all(iterable)

iterable :一个可迭代对象,例如 Array 或 String。

返回值:返回一个promise

简单说:Promise.all 等待所有兑现(或第一个拒绝)的结果。

Promise.all()文档

// 如果要并行执行多个异步函数,你需要调用这些异步函数并使用返回的 Promise//错误的写法
async function getPrice() {const choice = await promptForDishChoice();const prices = await fetchPrices();return prices[choice];
}//正确
async function getPrice() {const [choice, prices] = await Promise.all([promptForDishChoice(),fetchPrices(),]);return prices[choice];
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com