为了账号安全,请及时绑定邮箱和手机立即绑定

函数里定义一个变量和函数外面给函数里添加一个变量的区别

函数里定义一个变量和函数外面给函数里添加一个变量的区别

繁星点点滴滴 2018-08-03 17:42:32
函数一:function foo() {    var count = 0; }console.log(count) //undefined函数二:function foo() { } foo.count = 0; console.log(count) // 0这两个count我自己试验了一下,我的理解是:函数一中的count是函数内作用域定义的变量,函数外访问不到,而函数二我的理解是也在foo内定义了一个变量,却在全局作用域中能够访问。请问我的理解错误在哪里,请纠正;请问这两个count有什么区别,在实际用途中又有何意义?
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

你找错实验属性了,window中有count属性,所以你能打印到count的值,正常的话应该会报错

函数一的理解是正确的,函数外访问不到函数内定义的变量

函数二:函数也是对象,也是可以具有属性的,函数内的变量,函数属性,全局属性,这三者是不一样的

function foo() {    var count = 0; // foo函数内部变量}
foo.count = 0; // foo函数属性console.log(count) // window属性

这三个count根本不是同一个变量


查看完整回答
反对 回复 2018-08-05
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

前者是变量,供函数内做些计算操作,函数不执行这个变量就用不到,并且外部不能直接访问到它。 后者是属性,供外部访问。
如果理解有困难,那就把前者看成私有属性,后者看成公共属性。

最后那句 console.log(count)也用的不对,那样是直接访问window对象的count属性。


查看完整回答
反对 回复 2018-08-05
  • 2 回答
  • 0 关注
  • 797 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信