获得徽章 0
const data = {
a: 1
}

const dep = []
let val = data['a']
Object.defineProperty(data, 'a', {
set (newVal) {
if(val === newVal) return;
val = newVal
dep.forEach(fn => fn())
},
get () {
// 此时 Target 变量中保存的就是依赖函数
dep.push(Target)
return val
}
})

// Target 是全局变量
let Target = null
function $watch (getter, fn) {
// 将 Target 的值设置为 fn
Target = fn
// 读取字段值,触发 get 函数
getter()
}


$watch(()=>data.a, ()=>{
console.log('data.a is changed')
})
展开
评论
前端开发工程师 @Github主页 : https://github.com/konglingwen94
前端开发工程师 @Github主页 : https://github.com/konglingwen94
#每天一个知识点#
一名前端工程师的 web 技术栈
斜杠poven于2025-08-09 13:15发布的图片
评论
#我的技术写作成长之路# 一个前端工程师的技术图谱
斜杠poven于2025-08-07 15:20发布的图片
评论
Array.from({ length: 3 }) 背后的“信任逻辑”:


js

#每天一个知识点#
const obj = { length: 3 }
const arr = Array.from(obj)
JS 没有问你:你这个 obj 是数组吗?你实现了什么接口?

它只看到了:你有 length,好!那我就开始用索引 0, 1, 2 去读你。

如果你没有那些索引键(像 { length: 3 } 没有 0、1、2),那它就读出 undefined,但数组还是会被完整创建出来。
展开
评论
前端开发工程师 @Github主页 : https://github.com/konglingwen94
前端开发工程师 @Github主页 : https://github.com/konglingwen94
市面上之所以存在原生 AI 和套壳 AI 区别出于以下原因
传统 AI 做的是针对数据加工、处理、分发等相对上层的偏指令式算法任务。大语言模型的突破性演进在于从底层范式上训练后所具备的原生生成能力。这个创举是人工智能向人类智能看齐的一大步发展。这也是大语言模型又叫做生成式 AI 的一个定义来源。
评论
下一页
个人成就
文章被点赞 94
文章被阅读 32,558
掘力值 1,121
收藏集
11
关注标签
11
加入于