微信小程序创建自定义全局函数以及其调用方法详解
作者:子云_老猿人 发布时间: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
猜你喜欢
- Sitepoint有一个不错的针对Web开发者和设计者的参考手册网站,可以查询HTML、CSS和JavaScript的基本信息、兼容性和示例
- 本方法只做学习研究之用,不得用于商业用途若经济条件允许,请支持并购买正版,链接地址:https://www.jetbrains.com/py
- 前言我们在写应用时,基本都会用到配置文件,从各种 shell 到 nginx 等,都有自己的配置文件。虽然这没有太多难度,但是配置项一般相对
- 最简单的方法:取整后判断是否和原值相等!javascript的取整函数是:parseIntif(parseInt(value)==value
- 空白双边距是一个极容易误解的CSS特性.它不是CSS的bug,但如果我们一旦误解,将会给你带来很多麻烦.先看如下demo代码:<!do
- 当变量维数加大时很难想象是怎样按不同维度求和的,高清楚一个,其他的应该就很清楚了,什么都不说了,上例子,例子一看便明白…..a=range(
- 导言如我们在之前的教程里讨论的那样,分页可以通过两种方法来实现:1.默认分页– 你仅仅只用选中data Web control的 智能标签的
- MySQL Proxy(MySQL代理)是一个通过MySQL网络协议,提供MySQL服务器与客户端之间连接的应用工具,在基本配置条件下,My
- 在想把CIFAR-10 的16进制数据转为图像的时候需要用到imsave(),但是在import scipy.misc 之后显示该库内没有i
- CentOS mysql安装还是很常用的软件,我就学习如何CentOS mysql安装,在这里拿出来和大家分享一下,希望对大家有用。Cent
- 在整个产品设计的过程中,视觉设计与交互设计的“工序”非常紧密,两者关系也是相辅相成,互相影响。而视觉界面作为最直接与用户交流的层面,如何把交
- 如何在一个广告旗帜里轮番显示时间长度不一的不同广告?好了,下面就是Ad Rotator组件完整的应用例子:adrot.asp<html
- 这几天不是很忙,就找了些拖动布局方面的资料看看,也学着写了个拖动布局的效果,没想到花了好多时间,七拼八凑,总算是把这个效果写出来了。哎!还是
- 近又开始做网页,发现之前写的页面不规范,这次从头在来,希望一次比一次进步,先从CSS中的标点符号开始吧,这篇做为草稿已经放了很长时间了,还是
- 基础知识-----黄金分割法960px宽度的网格设计的好处无需我多说了,下面主要是复习一下如何作图求出960px宽度下的黄金分割点1、首先沿
- 导语:排版是一门艺术,也是一门技巧。我们每天都能在报纸,书籍等各种媒介上看到排版,或精美,或丑陋。如何能在准确传递信息的同时,又能排出精美的
- 前言随着网站的内容的增多和用户访问量的增多,网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,,我们往往需要在此时对我们的网站
- 从最基础的说起。本教程中,所有IE 均指 WindowXP + IE 6.0, 所有 FF 均指 FF 1.5。不用编程部分1.1 Form
- 没有多大变动,主要是返回错误信息,以便调用函数部分可以alert出来。据说可以用正则表达式校验,下次再研究下。//-------------
- 内容摘要:一堆数据摆面前,数据背后有什么样的事情在发生,这些数据里面暗藏着什么样的用户需求,什么样的商业机会?看懂这些,将为未来产品设计的方