/*
以下是个简单的继承的例子
就是Student继承了Person
*/
function Person(name,sex){
this.name = name;
this.sex = sex;
};
Person.prototype = {
setName:function(name){
this.name = name;
},
getName:function(){
return this.name;
},
setSex:function(sex){
this.sex = sex;
},
getSex:function(){
return this.sex;
}
};
function Student(name,sex,age){
Person.call(this,name,sex);
this.age = age;
};
Student.prototype = new Person();
Student.prototype.setAge = function(age){
this.age = age;
};
Student.prototype.getAge = function(){
return this.age;
};
/*
首先我们需要了解的是继承的本质
继承的期望是子类能够拥有父类的所有的属性和方法
并且,当父类被修改,或者新增方法之后
子类也能跟着变
但是如果子类被修改,父类还是保持不变。
然后开始分享我的一些理解
*/
/* 1.类的定义的时候是否使用prototype来定义类的方法或者属性 */
/*
Person这个类的方法还可以这么定义
*/
function Person(name,sex){
this.name = name;
this.sex = sex;
var setName = function(name){
this.name = name;
};
};
Person.prototype = {
getName:function(){
return this.name;
},
setSex:function(sex){
this.sex = sex;
},
getSex:function(){
return this.sex;
}
};
/*
如果这么定义的话就会发生一个问题,就是Student在继承setName之后
如果修改Person的setName方法,那么Student获取不到最新的setName方法
但是使用prototype来设置的setName方法,后面再修改setName方法
Student是可以获取到最新的setName方法的。
这个大家可以自己去尝试下
还有一些其他的问题,一时想不起来了,慢慢的加一下,有谁也有一些问题,告诉我,我一起加进来
*/
分享到:
相关推荐
最后,手册可能还会涉及面向对象编程的概念,如封装、继承和多态,以及JavaScript中的类和模块系统。这将帮助开发者构建更结构化、可维护的代码。 总的来说,"JavaScript对象参考手册"是一本全面的资源,无论你是...
总的来说,`zInherit`是JavaScript对象继承的一种实现,它利用原型链实现继承关系,使得子类可以继承和扩展父类的属性和方法。理解并熟练掌握这种继承方式,对于深入理解JavaScript的OOP特性以及编写高效的代码至关...
在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...
每个JavaScript对象都有一个内部的[[Prototype]]属性,通常可以通过`__proto__`或`Object.getPrototypeOf`访问。当试图访问对象的一个属性时,如果该属性不存在于当前对象,JavaScript会向上搜索原型链,直到找到该...
继承是面向对象编程的核心概念之一,它允许我们创建一个新对象,该对象继承现有对象的属性和方法。在JavaScript中,实现继承有多种方式,每种方式都有其特点、优势和不足。本文将详细介绍六种实现JavaScript继承的...
- **第三章:JavaScript中的类和对象**:详细介绍如何使用JavaScript创建类和对象。 - **第四章:继承**:探讨JavaScript中实现继承的不同方式。 - **第五章:封装和私有性**:讲解如何在JavaScript中实现封装以及...
通过原型链,对象可以访问并继承其构造函数原型上的属性和方法。 2. **函数作为一等公民**: 在JavaScript中,函数不仅是可调用的数据类型,还可以作为其他数据类型的成员。函数可以被赋值给变量、作为参数传递,...
### 深入浅出JavaScript对象模型 #### JavaScript对象的本质 根据ECMA262规范,ECMAScript被定义为一种基于对象的语言而非传统的面向对象语言。这意味着在JavaScript中,对象被视为存储数据的一种大型数组形式,...
### JavaScript面向对象进阶知识点...通过以上示例和理论分析,我们可以看到面向对象的JavaScript如何通过封装、抽象、继承和多态性等特性来构建更加灵活和可维护的代码结构。这对于开发复杂的Web应用程序至关重要。
4. **继承**:JavaScript支持多种继承方式,如原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和寄生组合式继承等。其中,最常用的可能是原型链继承,通过设置`prototype`指向另一个对象来实现。 ```...
关于对象继承,JavaScript采用的是原型链机制。每个对象都有一个`__proto__`属性,指向它的原型。当试图访问对象的一个属性时,如果对象本身没有该属性,JavaScript会查找`__proto__`,如果`__proto__`也没有,就会...
JavaScript提供了几种面向对象的机制,包括继承和封装。 ##### 4.1 封装 JavaScript中的封装主要通过闭包实现。例如,可以创建一个返回私有属性和方法的对象的函数: ```javascript function createPerson(name, ...
函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...
函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...
在本文中,我们将深入探讨JavaScript对象的定义、创建方法以及相关的工具和技术。 首先,我们要了解JavaScript对象的本质。对象是由键值对(key-value pairs)构成的集合,这些键可以是字符串或符号,而值可以是...
JavaScript中的继承是一个核心概念,它在面向对象编程中扮演着至关重要的角色。与其他面向对象语言相比,JavaScript的继承机制更为复杂。在Java或C++等语言中,继承通常只需要一个关键字,如`extends`,但在...
JavaScript的面向对象主要基于三个核心概念:封装、继承和多态。封装是将数据和操作这些数据的方法结合在一起,形成一个独立的单元,即对象。在JavaScript中,对象是键值对的集合,可以使用对象字面量或构造函数创建...