老师 我不太理解,这个报错

老师 我不太理解,这个报错

按道理说js中用驼峰形式写没错啊

background-color不能写- 变成backgroundColor,为啥会未定义呢


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-01-10 10:09:50

同学你好,是自己写的代码出现报错吗?是的话,可以将你写的代码直接粘贴过来,老师帮助排查下,如果不是的话,建议同学图文结合详细描述下具体是指哪里呢,便于帮助同学准确的定位与解决问题。祝学习愉快~

  • 提问者 豆包侠 #1

    //img1.sycdn.imooc.com/climg/5d4f854e000112e005000295.jpg

    本题考察的是DOM 0级事件,正确选项为AD;

    通过DOM获取到的html元素,调用函数时,后面直接跟函数名,不加括号,startBtn.onclick=start;是正确的写法,而endBtn.onclick=end();这种写法,end方法会在页面打开时就执行,不是点击endBtn才执行end。

    所以,当点击开始按钮时,先弹出“确定开始吗”,然后按钮背景颜色变为绿色;结束按钮后面是直接调用的函数,所以当打开页面时,直接执行函数里面的语句,弹出“确定结束吗?”,同时会报一个错“ Cannot set property 'backgroundColor' of undefined”。

    我对这个报错不太理解 写成驼峰形式为啥还错了

    2022-01-10 10:13:14
  • 好帮手慕慕子 回复 提问者 豆包侠 #2

    因为endBtn.onclick=end();这种写法,在end函数名后面添加了括号,表示立即调用该函数,所以end方法在页面打开就执行了,而不是在点击结束按钮时才执行,所以此时end函数内部的this并不执行结束按钮,而是window。

    可以写一写代码测试下,示例:

    https://img1.sycdn.imooc.com//climg/61db9f50091e086810710764.jpg

    由于window对象下并没有style属性,返回结果是undefined,无法通过打点方法访问到backgroundColor,所以会出现报错。如下:

    https://img1.sycdn.imooc.com//climg/61db9fc00925513807620598.jpg

    注意:可能是浏览器版本原因,导致截图中的报错信息与本题描述不一样,但意思是一样的

    祝学习愉快~

    2022-01-10 10:55:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师