深入理解JavaScript是如何顺利实现继承的
发布时间:2023-08-23 15:10:41 所属栏目:教程 来源:
导读:最近最网上看了一个人面试淘宝时的经历,然后发现了自己有好多好多不太清楚的地方,所以特此写点文章来加深自己对一些问题的理解。
文章中提到了一个问题是:JavaScript是如何实现继承的?
下面我便阐述一些
文章中提到了一个问题是:JavaScript是如何实现继承的?
下面我便阐述一些
最近最网上看了一个人面试淘宝时的经历,然后发现了自己有好多好多不太清楚的地方,所以特此写点文章来加深自己对一些问题的理解。 文章中提到了一个问题是:JavaScript是如何实现继承的? 下面我便阐述一些在网上找到的方法和实例来解释下,借以加深自己的印象。 我们知道JavaScript中的function是万能的,除了用于的函数定义,也可以用于类的定义。 JavaScript的继承,说起来也是有点怪,不像C++和一些面向对象的语言,他没有public,private等访问控制修饰,也没有implement或其他特定的符号来说明是实现继承。 关于javascript类的继承可以参考一下下面的这个例子。 代码如下: <script type="text/javascript"> function Person() { // 属性 this.Gender = "female"; this.Age = 18; this.Words = "Silence"; // 方法 this.shouting = function() { alert("开心哦!父类的方法"); } } // 继承 function Programmer() { this.base = Person; } Programmer.prototype = new Person; // 为子类添加新的方法 Programmer.prototype.typeCode = function() { alert("俺是敲代码的!IT民工,很不开心。子类的方法"); } // 调用示例 function sayHello() { var a = new Programmer(); alert(a.Gender); // 调用父类的属性 a.shouting(); // 调用父类的方法 a.typeCode(); // 调用子类的方法 } sayHello(); </script> 上例中,首先是声明一个person类,里面包含了一些属性和方法,然后接着又声明了一个programmer类,其中有个base属性,这个属性并不是必需的,但是出于规范以及以后在查找对象所继承的类时都需要写上,然后是给programmer的原型对象(prototype)拷贝了person类;于是便实现了类的继承。 模拟JavaScript中类和继承的一些原理 在面向对象的语言中,我们使用类来创建一个自定义对象。然而JavaScript中所有事物都是对象,那么用什么办法来创建自定义对象呢? 这就需要引入另外一个概念 - 原型(prototype),我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉好像是拷贝)。 让我们看一下通过prototype创建自定义对象的一个例子: 代码如下: // 构造函数 function Person(name, sex) { this.name = name; this.sex = sex; (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐