前端
SeriousSnow_
97单身狗一条
展开
-
小程序setData 常量(behaviors)
这是个啥问题呢。就是你写代码不是会有一堆常量吗,希望是不可被更改的,但是呢,小程序html要用得要通过setData。但是经过他之后什么常量都变成变量了。。。我们不希望这样。我们希望如果源头是常量,第一次setData没问题,但是设置好之后,无论是直接修改或者通过setData修改都应该报错,办法么就是hooksetData。但是吧这个函数和wx.xxx console.xx还不一样。他是page初始化之后才有的,而且是每个页面都独立的。。所以吗我们要用behaviors,把我们的hook代码注入到每一个原创 2021-01-19 10:06:29 · 749 阅读 · 1 评论 -
js console.log 如何release版本不打印
其实吗。。搞个全局变量,然后hook了console.log就行。但是有个啥问题,如果你直接hook,然后判断变量决定是否输出,你会发现一个问题,就是console.log对应的行号都是你hook函数那,而不是你写console.log的地方,这就很蛋疼了。。其实呢换个思路就行,小程序为例子。你启动的时候判断变量,如果不是debug,直接hook 把 console.log变成一个空函数就完事了 if(!DEBUG){ ((log)=>{ console.log = (m原创 2021-01-19 09:59:52 · 430 阅读 · 0 评论 -
小程序全局异常捕获
首先啊。这玩意其实是我网上查的一份代码简单改了改。。你说转载吧 好像也不太对。。就标了原创。。其实就是重写了Page函数,初始化的时候会遍历全部属性,找出全部函数,重写全部函数外面套一层try catch。。就那么回事获取到错误堆栈然后让后端给你个接口上报日志就哦了。。就这样吧Page = function(obj) { for (let key in obj) { let oldFunction = obj[key] // consol原创 2021-01-19 09:54:24 · 2023 阅读 · 2 评论 -
微信小程序定位showModal,showToast等
emm。不晓得你们遇到没,比如正常网络请求,如果不正常不管哪种不正常,都会提示一个错误,这时候如果客户报告了bug,就算你复现了,然后就发现你特么页不知道到底哪里报的错。。。。当然了,你可以说console.log 不是就知道了吗,问题是之前的人可能没写。。。真的是 贼无语。。于是吗 就希望那些wx的弹窗函数也能打印堆栈。。其实也不难 hook了就是了下面代码app.js onLaunch里面调用就哦了wx.showModal = (param)=>{ showModal(param)原创 2021-01-19 09:48:16 · 387 阅读 · 0 评论 -
JavaScript 继承(十一)原型六
不好意思因为懒,,我懒得弄图,,就是代码+注释//之前的帖子 js原型(三) 和js 构造函数 继承 都已经说了继承,但都不是很好//目前推荐使用 如下方法function Foo(){ this.a = 1; Foo.prototype.b = 2; Foo.prototype.show = function(){ console.log(this.b) }}function Bar(){ Foo.call(this); this原创 2020-08-19 22:44:20 · 113 阅读 · 0 评论 -
JavaScript 继承(十)原型五
不好意思因为懒,,我懒得弄图,,就是代码+注释//前文得知 function 有 prototype 但是new出来的没有。//但是只要是对象 就是不管是function还是new出来的(除了Object) 都会有一个叫做 __proto__的东西//之前说过 new 就是先创建一个空对象然后 让他的prototype 指向 要创建的。然后初始化//但是呢 new出来的东西 又没有prototype这东西。那怎么办呢?//这时候就要用到这个叫 __proto__的东西了//通过 new 创建对象原创 2020-08-19 22:43:22 · 96 阅读 · 0 评论 -
JavaScript 继承(九)原型四
不好意思因为懒,,我懒得弄图,,就是代码+注释//写了三篇的prototype了 而且标题是js原型。。。。我不管反正也不是写论文出书。我就按我自己喜欢的方式叙述了。反正我写了三篇的prototype就是原型。。我也没离题。。。//首先js的对象分成 function 和 new O__O "…。。或者就是 function和其他。。。我下面就说new 。。这玩意打字方便。。//function 都会有一个prototype 。。但是 new 的 就没有function Foo(){ thi原创 2020-08-19 22:42:03 · 103 阅读 · 0 评论 -
JavaScript 继承(八)原型三补充
不好意思因为懒,,我懒得弄图,,就是代码+注释//js 原型 (三) 我提到了一下情况function Foo(){ this.a = 0; Foo.prototype.b = {x:1} //新增这一句 Foo.prototype.d = 5;}var foo = new Foo();function Bar(){ this.c = {x:2}}Bar.prototype = Object.create(Foo.prototype)原创 2020-08-19 22:40:33 · 86 阅读 · 0 评论 -
JavaScript 继承(七)原型三
不好意思因为懒,,我懒得弄图,,就是代码+注释//之前的帖子里我已经解释过 基本的继承方法function Foo(){ this.a = 0; Foo.prototype.b = {x:1}}var foo = new Foo();//写这句哈的原因还是 不写的话 Foo 没意义 自然也就不能Foo.prototypefunction Bar(){ this.c = {x:2}}//继承 Foo的 prototype上的内容Bar.prototype = Ob原创 2020-08-19 22:39:14 · 105 阅读 · 0 评论 -
JavaScript 继承(六)原型二
不好意思因为懒,,我懒得弄图,,就是代码+注释//首先 我们明白变量屏蔽 简单来说就是局部变量屏蔽全局变量//这事就不废话了。。//那么 如果 一个对象本身有 a 属性 他的prototype上也有会怎么样呢?//用代码说话function Foo(){ this.a = 0; Foo.prototype.a = 1;}var foo = new Foo();console.log(foo.a); //0//由此可见 本身的属性会屏蔽 prototype上的属性v原创 2020-08-19 22:37:46 · 123 阅读 · 0 评论 -
JavaScript 继承(五)原型一
不好意思因为懒,,我懒得弄图,,就是代码+注释function Foo(){ this.a = 0; Foo.prototype.b = 1;}var foo = new Foo();//首先明白一件事console.log(Foo.a);//undefiendconsole.log(foo.a);//0//Foo 只是一个你定义的函数。。。不能直接用。。。//看如下代码//getPrototypeOf 就是获取到对象的prototypeconsole.log(Ob原创 2020-08-19 22:36:11 · 100 阅读 · 0 评论 -
JavaScript 继承(四)构造函数 继承
首先来说,js和典型的oop语言如c++有一个很大的区别,js没有类的概念(ES6引入了class。。额。。class就是个语法糖)就好像js可以定义一个数组,每个元素都是长度相同的数组,以此来模拟二维数组一样,js对于类的继承也是如此。function A(val){ this.val = val;}如果我想定义一个B继承自A,最核心的需求就是要能使用 A 的所有内容,比如这里只有一个变量val。function B(val){ this.fun = A;//this.f原创 2020-08-19 22:34:51 · 153 阅读 · 0 评论 -
JavaScript 继承(三)call apply bind 简介
不好意思因为懒,,我懒得弄图,,就是代码+注释function fun(){ this.x = 2; this.show = function(){ console.log(this.x); } this.show2 = function(val,val2){ console.log(val+val2+this.x); }}var num = { x:1}var x = 10;var obj原创 2020-08-19 22:31:55 · 277 阅读 · 0 评论 -
JavaScript 继承(二)for in 和属性描述表
不好意思因为懒,,我懒得弄图,,就是代码+注释var arr = [1,2,3];//for in 可以遍历数组for(let key in arr){ console.log(arr[key])}var _obj = { "one":1, "two":2}//for in 也可以遍历objectshowObj(_obj);//其实for in 是会遍历 目标所有可枚举的值//通过Object.getOwnPropertyDescriptor 来查看 ar原创 2020-08-19 22:30:35 · 274 阅读 · 0 评论 -
JavaScript 继承(一)初识 get set
标题不好意思因为懒,,我懒得弄图,,就是代码+注释//getter 和 setter 都是一个隐藏函数,会在获取属性的值或者设置属性的值得实惠调用//不定义就是默认操作,也就是平时 使用的obj.a = 5 就是把obj.a设置成5//自己定义也可以,如果一个属性,你给他定义了 getter或者setter或者两个都有,这个属性会被定义成//访问描述符(还有一个叫数据描述符的,这两个玩意之后帖子再说),这次就先简单认识下var obj = { get a(){ retur原创 2020-08-19 22:26:52 · 250 阅读 · 0 评论 -
工作成长记录(一)组件相关思考
说明我是一个还几乎没怎么用过框架的没写过什么项目,没多人协作写代码的经验的FW~~,所以以下内容只是我这个新手今天开始折腾的思考。。为什么想着要做组件今天需要做一个搜索页面,展示特定数据。搜索页面85%和订单页面是相同的。都是订单的展示以及相关的各种功能,比如进入详情页面啊,修改备注啊等等。这样就需要大量复制代码。如果之后其中一个地方逻辑或者ui发生了改变,就要两个地方一起修改,如果这样的事情出现了很多次,心态要炸的。而且很容易漏,导致出现很多bug。然后想起来之前好像看到过vue,react这种有原创 2020-06-11 18:34:47 · 208 阅读 · 0 评论 -
工作成长记录(二)悬浮按钮组件
说明我是一个还几乎没怎么用过框架的没写过什么项目,没多人协作写代码的经验的FW~~,所以以下内容只是我这个新手今天开始折腾的思考。。前言话说本来今天的计划是学习React,为做一个网页做准备了。突然又多了一个任务,需要在小程序的很多页面里添加一个悬浮按钮,效果类似iPhone那个球,可以随意拖动,然后会自动吸附到左边或者右边,点击出现蒙版出来其他功能按钮。使用自定义组件好多页面都需要,那不用说了肯定又是做成组件了。虽然我当下对组件的复用很方便并不是报太大希望。。微信官方组件最好的情况当然就是微原创 2020-06-15 18:03:08 · 426 阅读 · 1 评论