我有一个函数,它返回对象文字nameObj
的引用。我想访问返回对象中的方法,但收到 js 错误。为什么 setNameObj
方法在 nameObj
对象上不可用?
var nameObj=function(){
var _locname;
return {
item:'item1',
getNameObj: function(){
return _locname
},
setNameObj: function(nm){
_locname = nm
}
}
}
console.log(nameObj.setNameObj('tempValue'));
console.log(nameObj.getNameObj());
最佳答案
因为 nameObj
是一个函数,它返回一个具有您的方法的对象!
尝试调用它然后对结果调用函数:
console.log(nameObj().setNameObj('tempValue'));
console.log(nameObj().getNameObj());
当然,在这种情况下它基本上没有实际意义,因为每次调用都会创建一个新的闭包。您很可能需要一个变量(或者只是将 nameObj
转换为 IIFE)。
var obj = nameObj();
obj.setNameObj('tempValue');
console.log(obj.getNameObj());
关于javascript - 了解js返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994378/