app.js
App({
onLaunch: function () {
Number.prototype.__defineGetter__(‘ap’, function () { return this / 100 })
}
})
index.js
data: {
num: new Number(123456789)
},
onLoad: function(){
console.log(this.data.num.ap) //1234567.89
}
index.wxml
{{ num }} 可以解析 {{ num.ap }} 解析不了,空白
是bug,还是刻意为之
可以搞成这样啊 {{num.value}} {{num.ap}}
小程序搞不了那么多骚操作
因为js的逻辑和渲染不是同一个运行环境
你setData的时候其实是调用了JSON.stringify 把数据搞成字符串之后再发给渲染线程,渲染线程在解析成object之后一顿diff操作再更新到UI上。
JSON.stringify 的时候prototype这种东西会直接忽略掉,你的数据序列化之后就是一个plain object,就没有啥骚特性了。
你可以参考小程序官方文档上的资料:
setData工作原理
https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html
当然,你在react里面setState搞是完全没有问题的,因为是对象,引用,不存在有序列话和反序列化的过程