js 创建对象

<button id="btn">点击</button>
<script>
function Object(o){
this.selector=document.getElementById(o);

}
var o=new Object("btn");
o.onclick=function(){
alert("success");

}

</script>
<!--
当给o添加事件时,使btn也有这个事件方法,如何实现?

-->

第1个回答  2014-03-26
<script type="text/javascript">
function Obj(o){
o = document.getElementById(o);
var me = this;
for(var key in me){
o[key] = me[key];
}
return o;
}

Obj.prototype.say = function(){
//注意 这里的this是dom对象了
alert(this.innerHTML);
}
window.onload =function(){
//注意这里一定要用new
var o = new Obj("btn");
o.onclick=function(){
alert(this.say);
}

o.say();
}

</script>
<button id="btn">点击俺</button>

第2个回答  2014-03-26
o.selector.onclick=function(){
alert("success");

}追问

我看百度UE可以实现,但是看不太明白源代码。
var editor=new UE.Editor("btn");
editor.onclick=function(){
alert("success");

}
百度UE是这样写的
点击btn的时候就能触发方法

他是直接给实例添加onclick事件,当元素点击的时候就能调用这个方法。

追答

方法一,new UE.Editor("btn");里面返回的就是dom 对象,我估计你不是要这种结果
方法二:editor里面添加相应的事件方法,在实现的时候,为相应的dom对象添加事件。
可以通过原型实现

追问

方法二怎么实现?有例子看看吗,

本回答被提问者采纳
第3个回答  2014-03-26
    function domObj(o){
       return document.getElementById(o);

    }
    var o=domObj("btn");
    o.onclick=function(){
        alert("success");

    }
    这就行了吧。。

追问

那我要给对象添加一些方法呢,怎么弄弄

domObj.prototype.say=function(){
alert("hello world");

}

如果return的是dom对象,那就没办法访问say方法了

追答   function Object(o){
        this.prototype=document.getElementById(o);

    }
    var o=new Object("btn");
    o.onclick=function(){
        alert("success");

    }
    这样试试

追问

这是什么意思。。看不懂了

相似回答