微信小程序创建自定义全局函数以及其调用方法详解
作者:子云_老猿人 发布时间:2023-08-24 20:43:22
创建小程序全局函数
1:在微信开发工具中增加一个JS文档, 放入全局全局函数
代码说明
1:全局函数只能放var定义的变量下,本例的var 变量为myFunction
格式为:
var myFunction={ 在这里编写你的全局函数 }
你可以把myFunction理解为一个类,你的全局函数理解放类中的一个方法
2:module.exports={myFunction:myFunction}
这个语句相当于把你编写的函数公布出去,第一myFunction是外面看到的名字,第二个是上面定义的var变量,这两个名字可以不同,我看别人都是相同的,所以我也都用相同;
关于module.exports说明,参考官方文档
var myFunction={
function1: function(){//无参数全局函数
//TO DO 在这个位置输入你的代码
console.log('大家好,我是一个无参的全局函数')
},//多个函数使用逗号做分割
function2: function(para1,para2){//含参数全局函数
//TO DO 在这个位置输入你的代码
console.log('参数1:'+ para1)
console.log('参数2:'+ para2)
}
}
module.exports={
myFunction:myFunction
}
//也可以仅公开其中的一个函数如:
//
//module.exports={
//myFunction:myFunction.function1
//}
2:全局函数调用
调用比较简单,大家自己看吧
var myGolbalFunction = require('../../utils/globalFunctions.js')
//这个onLoad是窗体的加载事件,
//你也可以下在按钮,其他任何事件内
onLoad: function (options) {
myGolbalFunction.myFunction.function1();
myGolbalFunction.myFunction.function2('第一个参数','第二个参数');
}
3:科普下 .WXS和.JS的区别(由于网上搜素到的微信小程序创建自定义函数,有的是用.JS后缀文件,有的是.WXS后缀,搞得初学人员一头雾水,这里科普下)
简单说WXS可以理解为轻量的.JS
补充:WXS与JS的区别
1 WXS 的基础类库:
WXS只提供给开发者5个基础类库,分别是 console,Math,JSON,Number,Date,以及一些常用的全局变量和全局函数,数量不多,但已经能满足基本的数据操作要求,而对于复杂的数据操作,比如类定义和继承等,还是需要依靠逻辑层的 JS 脚本完成。
2 数组遍历
WXS 里,遍历数组只能通过for实现,而JS中的for in和for of不被支持,对于需要循环处理数据的场景,也可以通过数组的forEach方法实现遍历:
var ary = [0, 1, 2];
ary.forEach(function(i) {
console.log(i);
})
3 变量类型判断
由于WXS先天不支持使用 Array 对象,因此我们平常用于判断数组类型变量的语句[] instanceof Array也就不能使用了,而typeof []的输出结果是"object",并不能满足实际的开发要求。所幸我们还可以使用变量的 「constructor」属性进行类型判断:
[].constructor === Array //true
4 性能差异
如前所说,小程序的架构分成了逻辑层和视图层,WXS 与JavaScript还有一个差异在于,它与WXML一同们于视图层,运行于同一个线程内,因此减少了跨线程通信的开销。这也是我们之所以优先采用WXS处理数据的原因之一。
5 平台差异
小程序在Android上,使用V8引擎解析和渲染 JavaScript; 而在iOS上,则是使用 JavaScriptCore,这两者在解析性能的表现上差异比较大,相对来说 V8 的性能比 JSC 要好得多,那么在 IOS 的小程序中,使用脱离 JavaScript 环境的 WXS,就会使性能有更多的提升,这也是WXS文档中提及 “在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍” 的具体原因
关于WXS,小程序官方说明文档连接如下:
https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/01wxs-module.html
来源:https://blog.csdn.net/qq_40900506/article/details/124474874
猜你喜欢
- 最近发现周围的很多小伙伴们都不太乐意使用pandas,转而投向其他的数据操作库,身为一个数据工作者,基本上是张口pandas,闭口panda
- Django根据已有数据库表反向生成models类一. 创建一个Django项目django-admin startproject ‘xxx
- Pycurl包是一个libcurl的Python接口,由C语言编写的,功能强大,速度快。由于pycurl的属性和方法太多了,写这篇博文记录一
- 局部名字静态检测 Python探测局部作用域的时候:是在python编译代码时检测,而不是通过他们在运行时的赋值。 正常的情况下,没在函数中
- 需求在使用django admin时希望后台的Textarea多行文本框可以按yaml格式编写,数据库保存为Text文本类型,字段和接口中读
- IIS上设置301 跳转相信大家都会,只要在网站-属性-主目录里 选择重定向URL就行了,这样整站就跳转到目标站点了,但是有个问
- 作者:Henny Swan / co-lead of WaSP ILG译者:JunChen / member of WaSP ILG原文:h
- 本文实例讲述了Python实现的质因式分解算法。分享给大家供大家参考,具体如下:本来想实现一个其它的基本数学算法问题,但是发现在实现之前必须
- python库-密码学库pynacl什么是pynacl官方: https://pynacl.readthedocs.io/en/latest
- Python encode()方法encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个
- 今日大致浏览了一下《High Performance Web Sites》。本书的中文版是《高性能网站建设指南》。本书另有对其中个别问题深入
- xorm用于在golang中链接数据库,并完成增删改差操作,不管是orm还是raw方式都十分的新颖简单。sql语句postgresql pg
- 前言:了解了一下MySQL数据库的基本语句,这章了解一下它的高级操作,包括用户增删除与给予相对应的权限一.克隆表1.1克隆方法一(将表与内容
- 基于jquery.jsPlumb编写拓扑图,供大家参考,具体内容如下要求:实现公司组织结构拓扑关系,可展开,可收拢;动态数据展示;叶子节点可
- 不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。 不过要注意的是使用getElementByI
- 一般情况下,在函数中可以使用一个装饰器,但是有时也会有两个或两个以上的装饰器。多个装饰器装饰的顺序是从里到外(就近原则),而调用的顺序是从外
- 1、配置Git签名(1)语法$ git config 配置文件作用域 user.name '用户名'$ git config
- 阅读上一章:Chapter 4 引用互动性一直是互联网的重点,让使用者与网站能够交换信息,彼此沟通.表单使我们能够有组织的,使用同一方式的从
- 对批量WAV音频进行等长分割对WAV格式的音频以相同长度进行分割。import osimport waveimport numpy as n
- 1.page.wx.css内容如下:<view class='classify_list'> &l