源生JS如何定义个函数类似jQuery里面的hide()

yjxf8285 2012-08-27 12:15:02
我知道如果定义个
function abc(){
alert(1);
}
想要执行的话就是直接写
abc();

但是我想定义的函数是可以跟在元素后面的,比如

var myDiv = document.getElementById("mydiv");

myDiv.abc();

而且这个abc()摆明了是操作.之前的元素的,就像jquery里面的大量函数show()、hide()、eq()、attr()等等。

这样的函数叫什么名字?有没有专门的文章介绍这些方法呢?我想应该不是很复杂只是我还没搜到而已,希望有经验的高手们指点一下,多谢了
...全文
345 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
未知数 2012-08-27
  • 打赏
  • 举报
回复
js面向对象的知识而已,jquery也不是多么神奇的东东,不要把它神化了
未知数 2012-08-27
  • 打赏
  • 举报
回复
这样就可以了
function $(domid)
{
var obj=document.getElementById(domid);
obj.hide=function()
{
this.style.visibility='hidden';
}
return obj;
}
var myDiv=$("mydiv");
mydiv.hide();
张运领 2012-08-27
  • 打赏
  • 举报
回复
是在找匿名函数以及命名空间的用法吗?这个可以在网络上找到很多介绍。
wpf1523 2012-08-27
  • 打赏
  • 举报
回复
JQ中的$返回的其实是一个jquery对象,而不是原生的节点对象,所以jquery的那些show、hide方法都是基于JQ对象扩展的
hch126163 2012-08-27
  • 打赏
  • 举报
回复
jquery 返回的不是一个 dom 对象。
自己看看它的源码,不就明白了。

也可以以单步调试
yjxf8285 2012-08-27
  • 打赏
  • 举报
回复
多谢了!我自己再慢慢研究一下,起码现在有点思路了!:)
未知数 2012-08-27
  • 打赏
  • 举报
回复
我那个只是举个例子而已,
原理就是这样的,至于为了结构清晰,使用继承什么的,这是你写代码时自己考虑的事情,不可能让别人给你想。
js没有专门的继承机制,在子类中添加所有父类的成员就叫继承了,一般实现继承通过构造函数或通过原型链
http://bbs.51js.com/thread-72698-1-1.html
随便搜了一下,感觉这个说得挺全面
yjxf8285 2012-08-27
  • 打赏
  • 举报
回复
多谢!
但是看到您的代码后,感觉这么写是可以。这种方法等于说是给$()这个对象多写了一个方。取id和hide函数是绑在一起的,难道jquery也是这么干的?
如果非要绑在一起的话 那我后面还是$$()取tagname和$$$()取class的对象,岂不是每个都要绑一个hide了?
如果我继续写show()、addClass()之类的函数的话那也太繁琐了吧!代码一定很臃肿,不能分开写吗?

好像有一个继承的方式可以分开写,或者还有什么其他更好的写法?

因为我打算自己写一个类库,没想到第一步就把我难住了,不知道怎么写比较规范一些。

请过来人继续指点,谢谢了

87,991

社区成员

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

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