//A.利用传统的原始方法定义对象的方法(函数) 一
function Programmer(name,age,position){
this.name = name;
this.age = age;
this.position = position;
this.displayInfo = function(){
alert("[Name: "+ this.name +"] [Age: "+this.age+"] [position: "+this.position+"]");
}
this.setName = function(name){
this.name = name;
}
this.setAge = function(age){
this.age = age;
}
this.setPosition = function(position){
this.position = position;
}
}
var oBpmProgrammer = new Programmer("Kevin",24,"BPM Programmer");
oBpmProgrammer.displayInfo(); //[Name: Kevin] [Age: 24] [position: BPM Programmer]
oBpmProgrammer.setName("Andy");
oBpmProgrammer.displayInfo(); //[Name: Andy] [Age: 24] [position: BPM Programmer]
//B.利用传统的原始方法定义对象的方法(函数) 二
function Programmer(name,age,position){
this.name = name;
this.age = age;
this.position = position;
}
Programmer.prototype.displayInfo = function(){
alert("[Name: "+ this.name +"] [Age: "+this.age+"] [position: "+this.position+"]");
}
Programmer.prototype.setName = function(name){
this.name = name;
}
Programmer.prototype.setAge = function(age){
this.age = age;
}
Programmer.prototype.setPosition = function(position){
this.position = position;
}
var oBpmProgrammer = new Programmer("Kevin",24,"BPM Programmer");
oBpmProgrammer.displayInfo(); //[Name: Kevin] [Age: 24] [position: BPM Programmer]
oBpmProgrammer.setName("Andy");
oBpmProgrammer.displayInfo(); //[Name: Andy] [Age: 24] [position: BPM Programmer]
//C.利用原型定义对象方法(函数)的另一种方法
function Programmer(name,age,position){
this.name = name;
this.age = age;
this.position = position;
}
Programmer.prototype = {
displayInfo : function(){
alert("[Name: "+ this.name +"] [Age: "+this.age+"] [position: "+this.position+"]");
},
setName : function(name){
this.name = name;
},
setAge : function(age){
this.age = age;
},
setPosition : function(position){
this.position = position;
},
sex:"male"
}
var oBpmProgrammer = new Programmer("Kevin",24,"BPM Programmer");
oBpmProgrammer.displayInfo(); //[Name: Kevin] [Age: 24] [position: BPM Programmer]
oBpmProgrammer.setName("Andy");
oBpmProgrammer.displayInfo(); //[Name: Andy] [Age: 24] [position: BPM Programmer]
alert(oBpmProgrammer.sex) //male
//D.测试这种方法使用的继承是否有效
function Person(name,age,position){
this.name = name;
this.age = age;
this.position = position;
}
Person.prototype = {
displayInfo : function(){
alert("[Name: "+ this.name +"] [Age: "+this.age+"] [position: "+this.position+"]");
},
setName : function(name){
this.name = name;
},
setAge : function(age){
this.age = age;
},
setPosition : function(position){
this.position = position;
},
sex:"male"
}
function Programmer(name,age,position){
Person.call(this,name,age,position)
}
Programmer.prototype = new Person();
var oBpmProgrammer = new Programmer("Kevin",24,"BPM Programmer");
oBpmProgrammer.displayInfo(); //[Name: Kevin] [Age: 24] [position: BPM Programmer]
oBpmProgrammer.setName("Andy");
oBpmProgrammer.displayInfo(); //[Name: Andy] [Age: 24] [position: BPM Programmer]
alert(oBpmProgrammer.sex) //male
分享到:
相关推荐
本文实例讲述了JavaScript面向对象程序设计中对象的定义和继承。分享给大家供大家参考,具体如下: 在面向对象的Javascript编程中,希望代码优雅有高效是非常重要的。javascript中不存在类的概念,只有对象。要想把...
本文实例讲述了JavaScript面向对象程序设计创建对象的方法。分享给大家供大家参考,具体如下: 面向对象的语言具有一个共同的标志,那就是具有“类”的概念,但是在javascript中没有类的概念,在js中将对象定义为...
面向对象的程序设计:ECMA-262 对对象的定义为:无序的属性集合,其属性包含 ECMAScript 中的基本类型、对象及函数。 简单来讲,对象就是一组没有顺序的值。 对象的每个属性或者方法都有一个标识名,而每个标识名都...
JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。 全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量...
lang.js是Javascript面向对象编程的扩展库,支持包、类的定义和函数重载等功能,接口简洁规范,易用性强,压缩包内包含文档示例和带注释的源码,欢迎下载试用。
本书是一部独具特色的面向对象技术著作。书中结合代码示例生动透彻地讲述了面向对象思想的精髓,让读者真正学会以对象方式进行思考。此外,本书还讨论了各种与面向对象概念密切相关的应用主题,包括XML、UML建模语言...
本文承接上一篇JavaScript面向对象编程(1) 基础。 上篇说过,JavaScript没有类的概念,需要通过函数来实现类的定义。先通过一个例子说明: 代码如下: function myClass() { var id = 1; var name = “johnson”; ...
面向对象思想中,最核心的概念之一是类。 类:对一组属性及方法的集合。 二、函数 函数定义方法 函数声明后加括号 – 创建完成后立即调用执行 函数对象和其它内部对象的关系 – 对于Function, Object, Array, Date...
本文实例讲述了javascript面向对象程序设计的高级特性。分享给大家供大家参考,具体如下: 1.创建对象的三种方式: 第一种构造法:new Object var a = new Object(); a.x = 1, a.y = 2; 第二种构造法:对象直接量...
其它面向对象语言的多态一般都由方法重载和虚方法来实现多态,Javascript也通过这两种途径来实现! 重载:由于Javascript是弱类型的语言,而且又支持可变参数,当我们定义重载方法的时候,解释器无法通过参数类型和...
JavaScript中对象的定义为:无序属性的集合,其属性可以包含基本值、对象或者函数。可以把对象想象成散列表,就是一组名值对(key:value),其中值可以是数据或函数,每个对象都是基于一个引用类型创建的。 理解...
中的面向对象编程 学习目标 使用构造函数生成特定类型的对象。 使用构造函数将属性附加到新对象。 回想一下在构造函数中定义方法的成本。 通过将自定义对象附加到原型来定义自定义对象的方法。 使用 ES6 类语法重构...
//ECMA-262把对象定义为:“无序属性的 集合,其属性可以包含基本值、对象或者函数” //理解对象,最简单的方式就是通过创建一个Object的实例,然后为它添加属性和方法 var person = new Object(); person.name ...
对象在面向对象编程中,类是对象的模板,对象就是类的实例,例如“狗”是一个类,而这只狗就是一个对象,这只叫“hello dog”的狗就是一个实例。如何定义类1. 构造函数法这是经典方法,也是教科书必教的方法。它用...
看这篇文章之前,希望大家了解c++、java、c#等高级语言,有面向对象编程的基础知识。 1.类的定义: function ClassName(){ } 大家可以发现类的定义形式是和函数是一样的。 其实函数和类只有在使用的时候才能分辨出来...
ECMA-262把对象定义为:“无序属性的 集合,其属性可以包含基本值、对象或者函数” 理解对象,最简单的方式就是通过创建一个Object的实例,然后为它添加属性和方法 代码如下: var person = new Object(); ...
在《javaScript高级程序设计》(人民邮电出版社,曹力、张欣译。英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细。我们看看JavaScript中定义类的各种方法。 1.工厂方式 ...
面向对象:对象作为程序的基本单元,程序分解为数据和相关操作 二、类、对象 类:对具有相同特性和特征事物的抽象描述 对象:某种类型对应的具体事物 三、面向对象的三大特性 封装:隐藏实现细节,实现代码模块化 继承...
4.1 面向对象编程与基于对象编程 4.1.1 什么是对象 4.1.2 面向对象编程 4.1.3 面向对象编程:继承 4.1.4 面向对象编程:封装 4.1.5 面向对象编程:多态 4.1.6 基于对象编程 4.2 JavaScript对象的生成 4.2.1 HTML文档...
使用它的好处就在于可以让所有对象实例共享它所包含的属性和方法,也就是说,不必在构造函数中定义对象的信息,而是可以将这些信息,直接添加在原型对象中,如下所示,还是接着改写前两篇日志中的例子: 代码如下: ...