<script type="text/javascript">
/**
js继承:
通过原型链prototype来实现继承
*/
function Shape() {
this.name = "shape";
this.toString = function() {
return this.name;
}
}
function TwoDShape() {
this.name = "2D shape";
}
function Triangle(side, height) {
this.name = 'Triangle';
this.side = side;
this.height = height;
this.getArea = function() {
return this.side * this.height / 2;
};
}
//继承
TwoDShape.prototype = new Shape();
Triangle.prototype = new TwoDShape();
/*
这个可不写,如果不写则如: var my = new Triangle(5, 10); my.constructor则为
function Shape() {
this.name = "shape";
this.toString = function() {
return this.name;
}
}
指定之后就为指定的
TwoDShape.prototype.constructor = TwoDShape;
Triangle.prototype.constructor = Triangle;
*/
/**
测试继承
*/
function test() {
var my = new Triangle(5, 10);
alert(my.toString());
/**
虽然my对象并没有toString的方法,但是它继承了Shape.就可以调用toString的方法了。
让我们看看javascript引擎是怎样工作的.
首先先循环my对象的属性,发现没有toString的方法。
通过_proto_的链接找到对象,也就是TwoDShape()创建的对象。
接下来又开始循环TwoDShape的实例,发现也没有toString的方法。然后又会检查_proto_指向的对象。也就是Shape创造的对象。
终于在Shape的实例中,找到了toString方法。
最终toString方法在my的上下文中被调用。意思就是this指向了my对象。
*/
//alert(my.constructor);
}
</script>
</head>
<body>
This is my JSP page. <br>
<input type="button" onclick="test()" value="test">
测试div与span的区别:div是块元素 也就是会换行 而是span是行元素不会换行,但是可以通过样式display来改变
<span style="display:block">我是行内元素</span>测试行内元素<div style="display:inline">块元素</div>我是快元素
</body>
分享到:
相关推荐
JavaScript中的继承是面向对象编程的重要概念,它允许一个对象(子对象)继承另一个对象(父对象)的属性和方法。在JavaScript中,由于其动态类型和基于原型的特性,实现继承的方式比传统的面向对象语言更为灵活,但...
在本章中,我们将分析Prototypejs中关于JavaScript继承的实现。 Prototypejs是最早的JavaScript类库,可以说是JavaScript类库的鼻祖。 我在几年前接触的第一个JavaScript类库就是这位,因此Prototypejs有着广泛的...
在JavaScript中,实现继承通常需要开发者自定义方法。jQuery.js库提供了一种优雅的解决方案,通过`jQuery.extend()`方法实现了对象的继承功能。这个方法在jQuery中扮演着至关重要的角色,它不仅用于合并对象,还用于...
在给定的文件内容中,我们看到一个具体的JavaScript继承的例子,主要分为以下几个步骤: 1. 定义父类`Person`,这个类有一个原型方法`walk`和`sayHello`,它们分别用于定义行走和打招呼的行为。 ```javascript ...
在JavaScript中,实现对象继承主要有三种方式:原型链继承(prototype)、构造函数继承和call/apply继承。下面将分别详细介绍这三种继承方式的具体用法和实现原理。 1. 原型链继承(prototype) 原型链继承是...
几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。...但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。
本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行解析。 ### 类的概念与模拟 在JavaScript中,我们通常使用函数来模拟类的行为。一个函数可以看作是一个类的定义,通过`new`关键字来...
javascript中如何实现封装,继承和多态
在JS中,对象可以直接通过原型链实现继承,而无需像Java那样使用`extends`关键字。本文档将探讨JavaScript中的继承实现方式及其优缺点。 首先,我们需要理解JS中的对象与类的区别。在JS中,对象可以直接通过字面量...
5. **寄生组合式继承**:结合了寄生式继承和组合继承的优点,是JavaScript中推荐的继承方式,可以在`Javascript面向对象编程(三):非构造函数的继承.docx`中找到更详细的解释。 例如,使用寄生组合式继承: ```...
根据提供的文件信息,我们可以分析并总结出关于JavaScript继承的一些关键知识点。尽管提供的代码示例主要关注于使用jQuery插件初始化一个表格(grid),但这里我们将重点放在如何在JavaScript中实现继承这一主题上。...
JavaScript中的继承是一个核心概念,它在面向对象编程中扮演着至关重要的角色。与其他面向对象语言相比,JavaScript的继承机制更为复杂。在Java或C++等语言中,继承通常只需要一个关键字,如`extends`,但在...
使用`zInherit`这种方式进行对象继承的好处在于,它可以保持对象的实例属性,避免了构造函数继承中的属性复制问题。同时,由于直接操作原型,它能够有效地利用原型链实现属性的查找和继承。 然而,`zInherit`也存在...
在提供的`ClassDefineAndExtends.js`文件中,可能包含了关于类定义和继承的示例代码。通过分析这个文件,我们可以看到实际应用中的类定义和继承实践,包括如何定义类,如何使用构造函数初始化对象,以及如何通过`...
在JavaScript中,面向对象编程是实现复杂功能和代码复用的关键。继承是面向对象的核心特性之一,它...文章中的`inheritance.html`和`inheritance.js`文件可能包含示例代码,帮助你直观地了解每种继承方式的实现和使用。
### JS继承的实现方式 JavaScript作为一种灵活且功能强大的编程语言,支持多种继承模式。下面将详细介绍几种常见的继承实现方式,并探讨它们的特点与应用场景。 #### 一、原型链继承 **核心思想**: 将父类的实例...
寄生组合继承解决了组合继承中父类构造函数会被调用两次的问题,通过创建父类的一个不被使用的实例,然后将子类的原型指向这个实例的原型。 ```javascript function inheritPrototype(subType, superType) { let ...
JavaScript中的类继承是一种模拟传统面向对象编程中类概念的方式,因为JavaScript本身是一种基于原型的面向对象语言。在JavaScript中,对象可以直接从其他对象继承属性和方法,而不是通过类的实例化。这种继承机制...