欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

JS也玩OO继承

时间:2021-09-22 07:10:09|栏目:JavaScript代码|点击:
算了一下,还是来这里了 ^_^
无忧~~久违了…………贴一个原理的东东吧,

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

(stroll的跟贴)


当然,还可以通过以下几种不用“外挂”的方法…… 不过要求使用 Script5.5 才可以使用
比如 call 方法 和 apply方法…… 以下是使用 call 的方法来实现的
apply也差不多,只不过后面调用的参数是数组,详细可以自己参考MSScript5.6说明

Bencalie 还记得以前你跟我说call apply的使用方法么?这回这个答案算圆满了吧?

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

(stroll的跟贴)


注意观察所谓“继承对象”的 this.Prototype 这个变量(一开始我没注意看,以为是关键字……害我苦找资料)

this.Prototype = new JSObject(); // 注意:这可不是小写的prototype
this.Prototype.Speak = function(s){.......}
在构造对象后直接反馈 return this.Prototype 其实这个就是 JSPObject 对象,
并不是 JSHuman 对象,所以 var o = new JSHuman();
o 这个实例是无法访问 JSHuman 的成员的

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

(bencalie的跟贴)


stroll,看了你的?叽穑?非常?M意。

你又把???}勾起?砹耍?那麽?@?YBase.call(this, v_sName)用成Base.apply(this),我怎麽??v_sName?鬟f到Base.BaseName,我反倒??apply的使用有?c不好理解了。

最?K使用Base.apply(this, [v_sName])用?到M?鬟f成功

那麽?@?涌?call和apply?H?H是??挡煌?了?
(Roman的跟贴)

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

(bencalie的跟贴)
?U展了一下,?@?幼邮遣皇怯泻??蔚?OOP重?d功能?

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

(stroll的跟贴)


To bencalie ,是的,的确仅仅如此

不过不要认为apply这样是麻烦,其实如果两个对象的构造参数顺序一样的话,可以这么来
Base.apply(this, arguments) 很方便吧?

附上:(因为30秒才一贴~~)
不过你那里添加一个 new Base() 是认为无法继承的做法,其实是可以继承方法的,O.BaseMethod() 的调用就是了 ^_^
to:bencalie(Roman的跟贴)


基对象的方法被overwrite了.为什么stroll说 var o = new JSHuman(); o 这个实例是无法访问 JSHuman 的成员的
?看如下代?a:

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

stroll,方法的?_?^承?^?砹耍?但我在Son?ο蟮?k造函?笛Y重??了BaseMethod()

事??上O.BaseMethod()?@?诱{用已?不是Base?ο蟮?BaseMethod()方法了,而是Son?ο蟮?BaseMethod()方法,所以我把Base的一????例?}作Son的成?Tbase,使用

Son??例.base.BaseMethod()

的格式?硪?用Base的BaseMethod()方法


另外,我喜?走@句:Base.apply(this, arguments)
呵呵……收到~~(stroll的跟贴)


虽然说JS是没有指针了…… 不知道同时构造一个“父对象”,一个“子对象” 再有一个函数传递一个对象参数,这个参数使用父子共有的方法,是不是能够分别调用相应的方法呢? 还未了解JS 的 this 是不是相当于 虚拟地址的指针呢?
所以替换了方法才能解决上面的疑惑(虽然这个迷惑是菜了点,不过符合逻辑:)

还有……如果里面成员有构造对象的函式,是不是也会像c++一样先构造对象,然后再执行其他函式呢? 这个可能或则肯定是按照从上到下了~~~~语言规定?没试过

有没有试过多个父对象的继承呢?不过也不难想到这个一步……(树状继承)

这些就是偶的疑问啦,呵呵……

上一篇:js数组常用操作方法小结(增加,删除,合并,分割等)

栏    目:JavaScript代码

下一篇:React 实现车牌键盘的示例代码

本文标题:JS也玩OO继承

本文地址:http://www.codeinn.net/misctech/176661.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有