讨论javascript写类和将带参数的函数绑定给一个html控件的事件有什么好方法。

KimSoft
博客专家认证
2006-03-23 04:38:30
一、写类:

=====================方法A=========================
function Point(x, y){
this.x = x; //x已经作为“属性”暴露了
this.y = y;
}

//因为x已经暴露,这两个方法已经可有可无
Point.prototype.setX(value) {
this.x = value;
}

Point.prototype.getX() {
return this.x;
}

=====================方法B=========================
function Point(x, y){
var _x = x;
var _y = y;

Point.prototype.setX(value) {
_x = value;
}

Point.prototype.getX() {
return _x;
}
}

方法B好象封装得更好些,想请教一个B和A有什么区别,用哪一种好。


二、给html对象绑定一个带参数的方法时,有什么好方法,要求兼容性好些。



<select id="x"></elect>
<script>
document.getElementById("x").onchange = functioName; //怎么绑定好些

function functionName(arg0, arg1, arg2){
return;
}
</script>
...全文
373 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimSoft 2006-03-28
  • 打赏
  • 举报
回复
to ice_berg16(寻梦的稻草人):
谢谢,已经用别的方法解决了。
ffyd2000 2006-03-28
  • 打赏
  • 举报
回复
prototype 中的方法同 ice_berg16的
ice_berg16 2006-03-28
  • 打赏
  • 举报
回复
我给的方法不行么?
KimSoft 2006-03-28
  • 打赏
  • 举报
回复
顶一把
wuyg719 2006-03-26
  • 打赏
  • 举报
回复
关注中。。。
创造奇迹9999 2006-03-25
  • 打赏
  • 举报
回复
UP
ice_berg16 2006-03-25
  • 打赏
  • 举报
回复
Function.prototype.bind = function() {
var __method = this;
var arg = arguments;
return function() {
__method.apply(window, arg);
}
}

document.getElementById("x").onchange = functioName.bind(arg0,arg1,arg2);
mingxuan3000 2006-03-25
  • 打赏
  • 举报
回复
昨天面壁了两个小时...
LCKKING 2006-03-24
  • 打赏
  • 举报
回复
document.getElementById("x").onchange = functioName
楼主要这样用functioName就不能有参数,如果有参数,函数里是得不到的,全是null,像(梅雪香@深圳) 这样用,参数的值就固定死了,每次onchange就是那3个固定的值,如果想动态改变的话,所以这个问题要你自己斟酌一下
KimSoft 2006-03-24
  • 打赏
  • 举报
回复
灰心中... ...昨天面壁了两个小时。
cuixiping 2006-03-24
  • 打赏
  • 举报
回复
楼主的表达不是很清楚。

“事件”其实也是一个事先定义好的函数,因此有的事件是带参数的,有的事件是不带参数的。
如果事件是带参数的,那么指定事件处理函数名即可,参数会自动送到。

带参数的事件多见于ActiveX控件/COM组件。
fason 2006-03-23
  • 打赏
  • 举报
回复
绑定带参数的方法??
Small__Wolf 2006-03-23
  • 打赏
  • 举报
回复
关注....学习...
梅雪香 2006-03-23
  • 打赏
  • 举报
回复
两种定义方法都可以,各有好处,忘了在哪看过的.

document.getElementById("x").onchange = function (){functioName("id","name","sex")};

是是非非 2006-03-23
  • 打赏
  • 举报
回复
…………貌似不能怎么传

个HTML对象加个自定义属性吧
用这个来传

mingxuan3000 2006-03-23
  • 打赏
  • 举报
回复
学习

87,904

社区成员

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

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