首页 / JAVASCRIPT / javascript继承
javascript继承
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript继承,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2411字,纯文字阅读大概需要4分钟。
内容图文
![javascript继承](/upload/InfoBanner/zyjiaocheng/709/3ec4ee5dd28a4ce4ba9120a0a8645c93.jpg)
我知道有很多类似的问题都有很多很好的答案.我试着看一下经典的继承方法,或者那些闭包方法等.不知怎的,我认为它们或多或少都是“黑客”方法,因为它并不是javascript的设计目的. (如果我错了,欢迎任何人纠正我).
好吧,只要它有效,我满足于经典的继承模式,如:
PARENTClass = function (basevar) { do something here; };
PARENTClass.prototype = { a: b, c: d}; // prototype is auto gen
// Inheritance goes here
CHILDClass = function (childvar) { do something; };
CHILDClass.prototype = new PARENTClass(*1); // Actual inheritance to the prototype statement
// Instance
CHILDInstance = new CHILDClass(whatever);
上面是某种方式,我理解JS的继承.但是我不知道如何实现的一个场景是,如果我想做一些初始化DURING对象创建(即在构造函数中),并且可以立即使用新对象….我对问题的说明可能不会太清楚了,所以让我用下面的C#Psuedo来解释我想做的事情:
class PARENT {
public PARENT (basevar) { ... }
}
class CHILD : PARENT {
public CHILD (basevar) : PARENT (basevar) // constructor of child, and call parent constructor during construct.
{ ... }
}
出于某种原因(比如init.UI元素),将它们放在构造函数中似乎是最好的方法.任何人都知道我该怎么做.
PS:在* 1中,我不知道应该放在那里.
PS2:以上情况我DID发现jquery.inherit库可以做,我只是想知道如果不使用库就可以实现它.
PS3:或者我的理解是错误的.由于javascript并不是为了模仿OOP(这就是我称之为hack的原因),实现这一点的“正确”逻辑是什么.
解决方法:
这不是一个黑客; JavaScript是一种原型语言,由Wikipedia定义为:
..classes are not present, and behavior reuse (known as inheritance in class-based languages) is performed via a process of cloning existing objects that serve as prototypes.
正如它所说,JavaScript中没有使用类;您创建的每个对象都来自JavaScript对象; JavaScript中的所有对象都有原型对象,您创建的对象的所有实例都从其对象的原型对象“继承”方法和属性.有关更多信息,请查看MDC prototype对象参考.
在此之前,当你拨打电话时:
CHILDClass.prototype = new PARENTClass();
这允许CHILDClass对象从PARENTClass对象向其原型对象添加方法和属性,这会产生类似于基于类的语言中存在的继承思想的效果.由于原型对象会影响该对象创建的每个实例,因此这允许父对象的方法和属性出现在子对象的每个实例中.
如果要在子类的构造函数中调用父类的构造函数,则使用JavaScript调用函数;这允许您在子类的构造函数的上下文中调用父类的构造函数,因此将子类中的新原型属性设置为父类中设置的属性.
您也不需要在指定* 1的位置放置任何内容,因为该行仅用于将方法和属性添加到子类的原型对象中;但是,请记住它调用父类的构造函数,因此如果在父类构造函数的操作中有任何基本参数,则应检查这些参数是否存在以避免JavaScript错误.
内容总结
以上是互联网集市为您收集整理的javascript继承全部内容,希望文章能够帮你解决javascript继承所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。