使用Jquery如何实现继承

herowach 2012-03-22 10:24:08
如题,

var A = function(){};
A.prototype.toString = function(){return "aaa"};

var B = function(){};

$.fn.extend(B, A);

var b = new B();
但是 console.log(b instanceof A);//false

上面的继承只是把toString方法copy到了B中,但instanceof却为false,如何让属性方法也有,并且instanceof也为true
...全文
556 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
色拉油 2012-03-22
  • 打赏
  • 举报
回复
峭沙 2012-03-22
  • 打赏
  • 举报
回复
jquery的extend不是继承用的,是用来扩展对象的。。
你上面的代码只是让B.prototype = A.prototype而已
KK3K2005 2012-03-22
  • 打赏
  • 举报
回复
所谓的公用是你自己控制的把 看你的‘公用’到什么范围了


外面式:

可以使用最顶层的 Object.prototype.privateFunction

var A = function(){};
A.prototype.toString = function(){ this.privateFunction();};

里面式:

(fucntion(me){

function privateFunction(){}

me.A = function(){};
A.prototype.toString = function(){ privateFunction();};

A.prototype.toString222 = function(){privateFunction();};

})(window);


js没有里面外面的概念 只有闭包吧
herowach 2012-03-22
  • 打赏
  • 举报
回复
B.prototype = new A()对instanceof有效,暂时先用着,不知道会不会有什么副作用;

最后问个问题结贴, 不同的prototype中的方法,如何使用公用的属性或方法,应该定义在哪?
肯定不定义在类外面的吧,在类里面如何定义呢?

var A = function(){};
A.prototype.toString = function(){ privateFunction();};

A.prototype.toString222 = function(){privateFunction();};
挨踢直男 2012-03-22
  • 打赏
  • 举报
回复
jquery的那两个extend是用来合并对象的
A.prototype中的自定义toString没有被拷贝到B中
你可以这样
var B = function(){};
B.prototype = new A()
http://code.usuishi.com/Web/ArticleView.aspx?ArticleID=176
Edit Grid限制编辑 ExtJS 4 DirectStore post参数的变化以及应对方法 ExtJS 4 实例之数据包 ExtJS 4中动态加载的路径设置 Extjs4 API文档阅读(一)——类系统(Class System) Extjs4 API文档阅读(三)——布局和容器 Extjs4 API文档阅读(二)——MVC构架(上) Extjs4 API文档阅读(二)——MVC构架(下) Extjs4 API文档阅读(四)——Data ExtJS4 Grid组件 Extjs4 TreeGrid Extjs4 TreePanel实例 ExtJs4 动态加载 Extjs4 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充combobox数据 Extjs4中up()和down()的用法 ExtJS4学习笔记(一)---window的创建 ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(八)---Grid多选 全选 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(十)---ExtJS4图片验证码的实现 ExtJS4学习笔记(十一)---TabPanel ExtJS4学习笔记(十三)---上传文件(upload) ExtJS4学习笔记(十二)---选项卡(tabs) ExtJS4学习笔记(十五)---Ext.data.Model ExtJS4学习笔记(十六)---Combobox三级联动 ExtJS4学习笔记(十四)--- ComponentQuery ExtJS4学习笔记(四)---Grid的使用 Extjs4开发笔记(三)——菜单的实现 Extjs4开发笔记(二)——框架的搭建 Extjs4开发笔记(五)——动态grid Extjs4开发笔记(四)——实现登录功能 Extjs4开发笔记(一)——准备工作 关于Extjs4开发笔记(二)的补充说明 在Extjs4应用中使用Ext.Loader ======================================= 11条jquery常用技巧和方法整理列表 8个超棒的学习jQuery的网站 JQuery 1.5 getJSON 的使用 JQuery AJAX提交中文乱码的解决方案 Jquery css函数用法 JQuery中getJSON的使用方法 Jquery中显示隐藏的实现代码分析 JQuery全选功能的实现 JQuery特效——下拉菜单 JQuery系列教程之XPath选择符 JQuery系列教程之选择符 JQuery自动缩放页面中的图片 JQuery获取浏览器的高度和宽度 jquery获得和设置下拉框值的代码 基于jquery的跨域调用文件 ================================= 7款强大的Javascript网格插件 Javascript 汉字编码转换 Javascript 面向对象之封装 Javascript 面向对象之构造函数的继承 Javascript 面向对象之非构造函数的继承 JavaScript对象与继承教程之内置对象(下) JavaScript对象及继承教程(上) javascript正则表达式(一) javascript正则表达式(二) JavaScript的10种跨域共享方法 JavaScript类型总览 JavaScript获取文本框光标的像素位置 js函数match、exec、test、search、replace、split使用介绍 技巧:Javascript使用隐藏的new来创建对象 禁止页面全选复制,兼容多种浏览器

87,918

社区成员

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

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