全球旧事资料 分类
pply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。如fu
ccallfu
c1var1var2var3对应的apply写法为:fu
capplyfu
c1var1var2var3。9在Javascript中什么是伪数组?如何将伪数组转化为标准数组?答案:伪数组(类数组):无法直接调用数组方法或期望le
gth属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们。典型的是函数的argume
t参数,还有像调用getEleme
tsByTagNamedocume
tchildNodes之类的它们都返回co
solelogapplyco
soleargume
ts
f重庆仁人教育
NodeList对象都属于伪数组。可以使用ArrayprototypeslicecallfakeArray将数组转化为真正的Array对象。假设接第八题题干,我们要给每个log方法添加一个”app”前缀,比如helloworldapphelloworld。方法如下:12fu
ctio
logvarargsArrayprototypeslicecallargume
ts
为了使用u
shift数组方法,将argume
t转化为真正的数组3456co
solelogapplyco
soleargsargsu
shiftapp
10对作用域上下文和this的理解,看下列代码:1varUser23456789co
solelogUsergetCou
t1011varfu
cUsergetCou
twhatgetCou
tfu
ctio
retur
thiscou
tcou
t1
f重庆仁人教育
12co
solelogfu
c
what
问两处co
sole输出什么?为什么?答案是1和u
defi
ed。fu
c是在wi
odw的上下文中被执行的,所以会访问不到cou
t属性。那么问题来了,如何确保Uesr总是能访问到fu
c的上下文,即正确返回1。答案:正确的方法是使用Fu
ctio
prototypebi
d。兼容各个浏览器完整代码如下:1Fu
ctio
prototypebi
dFu
ctio
prototypebi
dfu
ctio
co
text23456789varfu
cUsergetCou
tbi
dUser10co
solelogfu
c11原生JS的wi
dowo
load与Jquery的docume
treadyfu
ctio
有什么不同?如何用原生JS实现Jq的ready方法?wi
dowo
load方法是必须等到页面内包括图片的所有元素加载完毕后才能执行。retur
fu
ctio
retur
selfapplyco
textargume
tsvarselfthis
f重庆仁人教育
docume
tready是DOM结构绘制完毕后就执行,不必等到加载完毕。12传递函数给whe
Ready当文档解析完毕且为操作准备就绪时,函数作为docume
t的方法调用这个函数返回
34
5varwhe
Readyfu
ctio
whe
Ready函数
6
varfu
cs
当获得事件时,要运行的函数当触发事件处理程序时切换为
7true891011次1213
varreadyfalse
当文档就绪时调用事件处理程序fu
ctio
ha
dlereifreadyretur
确保事件处理程序只完整运行一
如果发生o
readystatecha
ge事件,但其r
好听全球资料 返回顶部