JS 糟粕之全局变量和引用

广告位招租
扫码页面底部二维码联系

JS的全局变量是排第一的糟粕。比如:

【关注微信公众号:wwwtangshua【版权所有】唐霜 www.tangshuang.net【转载请注明来源】ngnet】本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。
const a = 1

function get() {
retun a
}

函数内可以直接使用一个函数外的变量,而且【原创内容,转载请注明出处】【本文受版权保护】可以层层往上引用。如果这个变量还是对象的著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。话,还可以修改对象。例如:

转载请注明出处:www.tangshua【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】ng.net转载请注明出处:www.tangshua【转载请注明来源】【原创内容,转载请注明出处】ng.net未经授权,禁止复制转载。
const o = { count: 0 }

function set(count) {
o.count = count
}

这种写法,由于我们写JS写的久了,觉得天未经授权,禁止复制转载。未经授权,禁止复制转载。经地义,而且还是个与其他语言不同的特性(本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】优点),殊不知,这种东西,害人害己。

原创内容,盗版必究。【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。

全局变量的设计,会使得内存引用及其复杂,【本文受版权保护】转载请注明出处:www.tangshuang.net且导致内存溢出。虽然js是自动回收垃圾,【未经授权禁止转载】转载请注明出处:www.tangshuang.net但是实际上很多情况下开发者需要自己手动释【转载请注明来源】【版权所有】唐霜 www.tangshuang.net放,而且由于全局变量这个特性,根本释放不未经授权,禁止复制转载。【本文受版权保护】了。

【访问 www.tangshuang.n本文版权归作者所有,未经授权不得转载。【本文受版权保护】et 获取更多精彩内容】【原创不易,请尊重版权】【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。【作者:唐霜】ang.net

如果要改进这门语言,我觉得可以学习rus【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。t,去掉全局变量这种东西。

【本文首发于唐霜的博客】【原创内容,转载请注明出处】
const a = 1
function get(&a) {
return a
}

const b = get(a) // b === a === 1
let b = a // a === null, b === 1

// ---------------

mut o = { count: 1 }
function set(mut &o, int count) {
o.count = count
}

function clone(o) {
return o
}
const n = clone(o)

虽然这使得这门语言麻烦很多,理解起来更复【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。杂,但是可以避免很多问题。

本文版权归作者所有,未经授权不得转载。【转载请注明来源】【关注微信公众号:wwwtangshua转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】ngnet】