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

函数一:function foo() {    var count = 0;
}console.log(count) //undefined
函数二:function foo() {
}
foo.count = 0;
console.log(count) // 0

这两个count我自己试验了一下,我的理解是:函数一中的count是函数内作用域定义的变量,函数外访问不到,而函数二我的理解是也在foo内定义了一个变量,却在全局作用域中能够访问。
请问我的理解错误在哪里,请纠正;
请问这两个count有什么区别,在实际用途中又有何意义?


繁星点点滴滴
浏览 798回答 2
2回答

小怪兽爱吃肉

你找错实验属性了,window中有count属性,所以你能打印到count的值,正常的话应该会报错函数一的理解是正确的,函数外访问不到函数内定义的变量函数二:函数也是对象,也是可以具有属性的,函数内的变量,函数属性,全局属性,这三者是不一样的function foo() {    var count = 0; // foo函数内部变量} foo.count = 0; // foo函数属性console.log(count) // window属性这三个count根本不是同一个变量

蝴蝶刀刀

前者是变量,供函数内做些计算操作,函数不执行这个变量就用不到,并且外部不能直接访问到它。 后者是属性,供外部访问。如果理解有困难,那就把前者看成私有属性,后者看成公共属性。最后那句 console.log(count)也用的不对,那样是直接访问window对象的count属性。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript