ES6箭头函数的坑

前几天写了一个页面,在移动端上显示的,解构也很简单,html+css+jQuery,js写法用的ES6(let,const,还有箭头函数),内容就是图片+表格,一切都很顺利,弄完了就没什么事了。
然而,今天上午的时候,同事过来说,怎么安卓手机的浏览器打开这个页面,点击里面的按钮都是没反应的呢?当时还以为他是开玩笑或者是他自己手机问题,本着负责任的态度,拿着自己安卓机打开链接,试了一下,有问题,接着有用同事的苹果机试了几个浏览器,没问题。好吧,开始塘坑。
正常的表格样式是


image.png

但是当时的样式是


image.png

没错单单样式上看没多大区别,就是三级联动的地址栏变空了,但这就是问题了,为什么会不显示呢?而且点击返回底部按钮,商品数量加减按钮,输入框设置了失焦事件)等等,没有任何效果。第一时间作出了一下判断
1.手机浏览器兼容问题
2.JQuery版本问题

针对这两个问题,立马进行验证。
验证1:
本人手机安装的浏览器有UC,QQ,360(自带的),为了测试又下载了百度浏览器,结果发现除了手机自带的360浏览器使用正常外,其余浏览器均不正常。
然后呢,将jQuery操作的代码

$('.add').click(function(){
    var a_num = Number($(this).siblings('input').val());
    var inventory = Number($(this).siblings('input').attr('data-q'));
    if(inventory <= a_num){
        popW('购买数量不能大于库存');
        return;
    }
    a_num++
    var price = $(this).siblings('input').attr('data-price');
    var Total = price * a_num;
    $(this).parents().siblings().children('span[class=price]').html(Total+'.00');
    
    $(this).siblings('input').val(a_num);
})

改成了原生的JS

function addNum(){
  alert(1);
}

点击,记过还是没有效果

验证2:
原先引入的jQuery是3.1.1版本的,然后换了1.8.3的版本,不行,换了zepto.js,结果还是一样。

那么这两个方向就可以证实不是正确的了,但是基本可以确定,js没效果。

接着上网google + 百度,找了一堆东西发现没一个是有用的,包括问了一下圈里的朋友,都说没遇到过,好吧,烦恼开始了,那么为什么会这样呢?

上了个厕所回来,突然想到,会不会是浏览器需要设置开启js脚本支持,接着又一通找浏览器里的设置,然并卵。

耐着性子继续分析问题。既然页面能够显示,那么说明html跟css没有问题,dom节点操作没有反应,那就是js的问题,那么是不是js引入不成功导致的呢?

接着直接在script下加了一个alert(1),显示没效果,那么好,基本就判断是Js没引入的问题。但是回头一想,为什么360浏览器有效果呢?360浏览器有效果不就是说明js引入了,而且代码没有问题吗?于是又推翻了这个想法。

那么会不会是js跟浏览器的兼容问题呢,就将ES6的写法改成ES5的,一测试,可以了,好吧,自己坑自己了。

最后在查找原因的时候,发现是因为箭头函数里的this的问题。
在ES5中,函数作为对象的方法调用时,this指向的是调用的对象;而在ES6的箭头函数中,箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时,它所处的对象(宿主对象),而不是执行时的对象, 如果没有,就会一层层网上找,直到window。而在自己写的箭头函数,this正好是指向widow的,导致获取不到执行时的对象,所以点击没有任何效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容

  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,452评论 1 19
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    程序员poetry阅读 114,194评论 24 450
  • 看了一片细分到不能再细分的垂直类app的产品分析后,就此引发了这个牢骚。 更加深刻体会到2015年o2o的泛滥。泛...
    盖饭先生阅读 138评论 0 0
  • 不挂科的大学是不完整的,挂科了的心情是悲痛难言的。 今天想着成绩应该都出来了,输入账号、密码一查,懵逼了,居然有一...
    七点钟姑娘阅读 732评论 1 3
  • 早上,老公送孩子上学。饱饱地睡个懒觉。八点起床,开窗,阳光明媚。窗外的马路上,车流穿梭,人们忙忙碌碌,一派欢乐。 ...
    尚妮妮阅读 275评论 2 3