作者:政平世财482 | 来源:互联网 | 2023-10-14 20:49
不BB,直接正题一.将大众要领绑定到Page上单个绑定constoldPagePagePagefunction(app){注重大众函数的名字不要反复,不然掩盖app.utilfun
不BB,直接正题
一. 将大众要领绑定到Page上
单个绑定
const oldPage = Page
Page = function(app) {
// 注重大众函数的名字不要反复,不然掩盖
app.util = function() {}
return oldPage(app)
}
多个绑定,文件绑定
const util = require('./util.js'); // 须要绑定的函数由util文件exports出来
const oldPage = Page
Page = function(app) {
let newPage = Object.assign({}, util, app)
return oldPage(newPage)
}
二. 扩大,修正性命周期函数
const oldPage = Page
Page = function(app) {
app.OnLoad= function(options) { // 这里必需运用function, 不能够运用箭头函数, 不然this指向毛病
console.log("扩大onLoad");
// onLoad函数在是当前page实例高低文中实行,所以当前的this为当前page实例
// 假如不运用call来硬绑定,而是直接app.onLoad(),那末onLoad里的this将为app这个对象
// 即我们正常在page.js里Page(app) 括号内里我们本身写的page对象
if(typeof app.OnLoad=== 'function') {
app.onLoad.call(this, options);
}
}
return oldPage(app)
}
ps.想更体系的相识js关于this的学问能够戳这里
三. 运用
我本身写的时刻,将自定义的内容零丁封装到一个js文件中,然后在app.js中援用这个文件即可
require('./init.js'); //援用即可
App({
onLaunch: function (options) {
}
})