关于JS 全局对象封装的作用域的问题

发布于 2021-11-19 16:25:08 字数 814 浏览 781 评论 3

<div class="w" style="height:35px;width:90px;border:1px solid #333;text-align:center;line-height:35px;" id="w">
 </div>
<script src="checkNum.js?callback=newNum"></script>
<script>
  var check={
	  name:"test",
	  getDiv:function(){
		  return document.getElementById('w');  
		  },
		  
	  getName:function(){
		  return this.name;    
		  },	
		    	
	  step:function(){
		 this.getDiv().onclick=this.disName;  //  绑定到事件
		  },
		  	  	  
  	  disName:function(){
		  alert(this.getName());   // 无法获取  getName(),显示not function
		  }  	  
	  }
	  
	check.step();      
</script>
问题: 全局对象封装下事件绑定的函数如何引用 其他同对象成员?? 比如: 我想点击 div然后弹出 getName获取的name名??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

平生欢 2021-11-22 03:03:51

非常感谢 ! 还有个问题, 就是能不能用 that来 暂存下 this ? 如果能, 应该在哪定义??

看透却不说透 2021-11-21 04:55:47

回复
http://jason.pettys.name/2011/10/06/javascript-this-and-that/

好听的两个字的网名 2021-11-21 03:27:04

你绑定的this.disName到一个div元素中,click调用disName中的this是由运行的上下文确定的,即你的div元素

对于你这个check对象,它是一个单例对象,直接改为check.getName()

参见:http://jsfiddle.net/cgcgbcbc/p9hHC/1/

或者使用闭包来保持引用:

http://jsfiddle.net/cgcgbcbc/BcyE9/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文