自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 一张图理解javascript中构造函数、原型对象和对象实例之间的关系

构造函数、原型对象和对象实例之间的关系最有趣的一个方面就是对象实例和构造函数之间没有直接联系。对象实例与构造函数的联系是通过原型对象上的constructor属性来关联。这种关联意味着如果打断对象实例和原型对象之间的联系,那么也将打断对象实例和其构造函数的联系!...

2021-11-03 11:22:54 366

原创 快速入门kotlin-标准函数与静态方法

标准函数首先我们介绍标准函数 with、run、apply,如果你了解javascript,那理解kotlin的标准函数width、run、apply那简直不要太轻松。with、run、apply与javascript中的with的意义基本一模一样,只是含有一些细微差别。withwith它接收两个参数,第一个参数可以是任意类型的对象,第二个参数是一个Lambda表达式。with函数会在Lambda表达式中提供第一个对象的上下文,可以直接使用对象的属性或方法,而不需要带上对象前缀。with函数会使用La

2021-09-01 16:30:34 332 1

原创 使用fabric.js简简单单实现一个画板

什么是fabricfabric是一个功能强大的JavaScript库,运行在HTML5 canvas上。fabric为canvas提供了一个交互式对象模型,以及一个svg-to-canvas解析器。与canvas的区别来一个简单的例子来说明一下fabric与canvas的区别,假设我们想在一个画布上画一个红色的矩形:<canvas id="c"></canvas>// 原生 canvas api// 有一个id是c的canvas元素var canvasEl = do

2021-06-29 16:53:51 3730 4

原创 【撸个前端脚手架】(二)脚手架的开发流程

快速搭建一个脚手架使用 npm init初始化项目,在package.json文件中添加bin配置,我们设置脚手架的脚本命令名称为 tyro-cli,命令实际执行的文件为 bin/index.js。创建脚手架入口文件 bin/index.js,并在第一行添加 #!/usr/bin/env node使用npmlogin与npmpublish发布脚手架发布成功后全局安装脚手架并执行我们定义的脚手架指令npm install -g tyro-test-...

2021-06-24 19:38:10 510

原创 【撸个前端脚手架】(一)脚手架执行原理

脚手架安装与使用拿我们常用的脚手架vue-cli举例:我们使用npm指令安装脚手架:npm install -g @vue/cli输入指令使用脚手架快速搭建项目: vue create my-vue-app简单分解一下我们在命令行中输入的指令, 将vue理解为脚手架的主命令,create 为脚手架的 command, my-vue-app为 command的参数 param。执行脚手架指令之后系统做了哪些操作在系统环境变量里寻找 vue 这个主命令2.找到 vue 命令的位置后系统执行

2021-06-16 11:03:47 275

原创 H5微信授权登录后点击返回出现循环登录无法退出问题

简单介绍h5微信授权流程1、入口页跳转到我们自己创建的空白授权页2、在空白授权页判断url上是否包含code,没有code拼接微信授权链接,通过location.href进行跳转location.href = https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&stat

2021-06-04 18:02:28 5938 1

原创 【Vue】$attrs,你可能不知道它!

项目中,你可能会遇到这样一种场景:A组件嵌套B组件,B组件嵌套C组件,现在需要将A组件的数据传递到C组件,该怎么做?我们一般会想到两种方法:1、使用props将数据从A传递给B,再由B传递给C。2、使用vuex。使用props逐层传递太过繁琐,使用vuex又有些大材小用。下面将由本文的主角$attrs来教你另一种实现!使用props进行数据传递是这样的:如果我们不在子组件中通过props接收,父组件绑定在子组件上的属性会添加到子组件的根元素上vue为我们提..

2021-05-19 15:42:35 364

原创 js的Proxy代理对象?看完你就会了!

什么是Proxy代理?// pOjb就是通过new Proxy创建的代理对象var pObj = new Proxy(obj, handlers)为什么需要代理对象举个记账的例子:// obj代表我们,wallet属性指我们钱包,现在我们钱包里有100元// consume指消费次数,每次消费加1, 记一笔账var obj = {wallet: 100}var consume = 0// 这个月,我们喝了五次肥宅快乐水,每次消费我们都记一笔// 今天消费3元consume++o

2021-05-11 20:32:52 1995

原创 uniapp开发h5应用进行微信网页授权登录获取code失败

最近正在做企业微信内的h5应用,有微信授权登录这么个需求。微信授权登录并不复杂,整个流程就是按照文档上描述的:在入口页构造网页授权链接,跳转到该链接,微信会重定向到入口页并将code拼在url上,前端将code给到后端,后端调用微信提供的服务端api即可完成登录。// 构造如下链接来获取code参数 https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect\_uri=REDIRECT\_URI&re

2021-05-06 15:09:16 6549 2

原创 快速入门kotlin-Lambda编程

集合的创建与遍历集合的函数式API是用来入门Lambda编程的最佳示例,我们先用kotlin创建一个包含许多水果的集合,然后将水果一个个添加到集合中val list = ArrayList<String>()list.add("苹果")list.add("香蕉")list.add("梨子")list.add("葡萄")这种初始化集合的方式比较麻烦,kotlin为我们提供了一个内置的listOf()函数来简化集合的初始化val list = listOf("苹果", "香蕉",

2021-04-11 23:07:37 139

原创 快速入门kotlin

变量和函数变量// val 用来声明一个不可变的变量,对应java中的finalval a = 10// var 用来声明一个可变的变量,不用声明变量类型var a = 10// 显示声明变量类型使用 : 变量类型// 变量类型有: Int Long Short Float Double Boolean Char Byteval a : Int = 10函数// 声明一个函数,并指定参数以及返回类型fun methodName (param1: Int, param2: Int)

2021-04-10 14:28:13 194

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除