js 对象中为什么不能直接调用自己的属性方法?
js对象中为什么不能直接调用自己的属性方法?varobj={name:"myName",getName:function(){returnname;}}console.l...
js 对象中为什么不能直接调用自己的属性方法?var obj = {
name: "myName",
getName: function() {
return name;
}
}
console.log(obj .getName())//undefined
对象不是已经实例化了吗,为什么获取不到name??然后this.name就可以?? 展开
name: "myName",
getName: function() {
return name;
}
}
console.log(obj .getName())//undefined
对象不是已经实例化了吗,为什么获取不到name??然后this.name就可以?? 展开
2个回答
展开全部
这是作用域的问题,也就是说你对象里面的变量其实是private的,对对象里面的方法是隐藏的,这时我们就需要用this指针才能找得到对象的变量,在外部引用对象是对象名称充当了this指针。
所以说只有加this才能引用到对象的变量:
参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var obj = {
name:'eve',
getName:function () {
return this.name;
}
};
//alert(obj.name);//eve
alert(obj.getName());//eve
</script>
</body>
</html>
效果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询