1.假设页面中有n个li标签,如何实现单击打印下标值
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
可能有很多人看过ES6说用let就好了啊,balabalabala什么的,不好意思,用闭包还记得怎么打印么?
<script>
// for(let i = 0; i < 10; i++){
// console.log(i);
// }
var lis = document.querySelectorAll("li");
console.log(lis);
for(var i = 0; i < lis.length;i++ ){
function foo() {
var j = i;
return function fun() {
console.log(j);
}
}
lis[i].addEventListener("click",foo())
}
</script>
2.Object.create()
这个函数是自己再看学了《这么多年JS,你还不是弄不懂“this”? 》遇见的,自己当时就猜这个函数内部是怎么实现的,当时我也很费解啊,怎么就能给原型了呢?
大体记得代码是这样写的
var myDog = Object.create({
·······
})
答案上说直接给新对象的原型设置了,当时很费解,我记得在高程第六章讲了一个原型式继承,自己打开看了一下,
原理就是
function fun(o){
function F(){
F.prototype = o;
return new F();
}
}
网友评论