求帮忙,小弟跪了

chenchen666888 2013-05-04 07:58:04
<html>
<head>
<script>
function fun1(){
alert("第一次");
}
function fun2(){
alert("第二次");
}
window.onload = function(){
var one = document.getElementById("one");

one.onclick = function(){
fun1();
fun2();
}
function addevent(obj,types,fns){
if(typeof obj[types]!= "function"){
obj[types] = fns;
obj[types];
}
else{
var old = obj[types];
obj[types] = function(){
old();
fns();
}
}
}
addevent(one,"onclick",function(){
alert("第三次");
})}
</script>
</head>
<body>
<input type = "button" value = "改变" id = "one">
</body>
</html>

(1)求给哥哥帮忙解释obj[types]是什么意思?在调用函数的时候addevent(one,"onclick",function()第二个参数传进去的是字符串啊,obj[]的[]里面放个字符串是什么意思啊?
(2)我在燕山大学读书,自诩为高校,TM我问了好几个被公认为有实力的老师,他们均表示没时间(其实就是不会)这大学教育都是TM的什么啊,问啥啥不会,都是垃圾,求哪位哥哥帮帮忙,小弟新手
...全文
85 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftiger 2013-05-04
  • 打赏
  • 举报
回复
obj[types] 不等于 obj.types的 obj.types 相当于 obj["types"],也就是直接访问用obj.types,通过传入一个字符串调用则用obj[types]
chenchen666888 2013-05-04
  • 打赏
  • 举报
回复
但是我又试了试将obj[types] 换成 obj.types 结果不行啊,我前面已经var one = document.getElementById("one");了
chenchen666888 2013-05-04
  • 打赏
  • 举报
回复
谢谢哥哥了,懂了,小弟初学,麻烦了,嘿嘿
ftiger 2013-05-04
  • 打赏
  • 举报
回复

function addevent(obj,types,fns){
	if(typeof obj[types]!= "function"){//如果obj["onclick"]= obj.onclick 不是function
		obj[types] = fns;
		obj[types];
	}else{
		var old = obj[types];        //old保存旧操作
		obj[types] = function(){   //建立一个新的function 依次执行旧操作,新操作,并重新绑定
			old();      
			fns();
		}
	}
}
adde

云-中-飞 2013-05-04
  • 打赏
  • 举报
回复
obj 就是var one = document.getElementById("one"); types 就等于onclick obj[types]就等于 one.onclick 至于传参错不错 那是传参的问题
未知数 2013-05-04
  • 打赏
  • 举报
回复
估计是真没时间吧,大学老师这么个水平的话就太不可思议了 js的对象模式是集合,即key-value的模式 obj["a"]写法与obj.a效果相同

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧