javascript代码阅读题
第一题
var f = function () {
var c = 'ccc'
return {
a: function () {
return c
},
b: function (d) {
c = d
}
}
}()
console.log(f.a()) //ccc
console.warn(f.c) //undefined
console.warn(f.b('www')) //undefined
console.warn(f.a()) //www
输出分析:
题中 f
是一个立即执行函数表达式(IIFE)。返回一个对象,其中包含两个方法 a
和 b
。f 中还有一个局部变量 c
。
- 在第一次调用
console.log(f.a())
中,a
方法被调用并返回c
的值'ccc'
。因此,它会输出'ccc'
。 - 在第二次调用
console.warn(f.c)
中,由于c
是在f
的作用域内定义的局部变量,而不是作为对象的属性,因此无法通过f.c
来访问它。因此,它会输出undefined
。 - 在第三次调用
console.warn(f.b('www'))
中,