Javascript中对象继承的实现小例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/**
* json对象的格式
{key:value,key:value,key:value..}
*/
//创建对象的小例子
//-----1
var r={};
r.name="tom";
r.age=18;
//-----2
var r={name:"tom",age:20};//json对象
alert(r.age);
//---1,2是等价的
//-------原型模式的写法
//----1
function Person(){};
Person.prototype.name="中国人";
Person.prototype.age=20;
//原型模式的简写形式--2
function Person(){};
Person.prototype={name:"中国人",
age:20,}
//-----1,2等价的
//================================
/* {name:"中国人",
age:20,}
上面的这种格式本身就是个对象,将其付给另一个对象的prototype,就使得
另一个对象的所有属性。实质上就是继承
*/
//================================
//标准的对象继承例子,Person,Student
//定义一个Person对象
function Person(){};
Person.prototype.name="中国人";
Person.prototype.age=20;
var person=new Person();
//定义一个Student对象
function Student(){};
Student.prototype=person;
Student.prototype.girlFriend="可以有的";
var stu=new Student();
stu.laop="不许谈恋爱";
alert(stu.name);//继承自父对象的实例
alert(stu.laop);//自己新添加的属性
//定义一个Teamleader对象的
function Teamleader(){};
Teamleader.prototype=new Student();//继承自Student
Teamleader.prototype.teamNum=8;//Teamleader自己的属性
//创建自己的实例
var teamleader=new Teamleader();
alert(teamleader.teamNum);
teamleader.girlFriend="也不可以有哦";
alert(teamleader.name);
//=================================
/*js中继承的核心就是prototype*/
//=================================
</script>
</head>
<body>
</body>
</html>
相关推荐
-
由JavaScript中call()方法引发的对面向对象继承机制call的思考
起因: 今天在阅读snandy大神的读jQuery之五(取DOM元素)时,看到有讲到toArray()方法,具体jQuery代码如下: 复制代码 代码如下: toArray: function() { return slice.call( this, 0 ); }, get: function( num ) { return num == null ? // Return a 'clean' array this.toArray() : // Return just the object ( n
-
js对象继承之原型链继承实例
本文实例讲述了js对象继承之原型链继承的用法.分享给大家供大家参考.具体分析如下: 复制代码 代码如下: <script type="text/javascript"> //定义猫的对象 var kitty = {color:'yellow',bark:function(){alert('喵喵');},climb:function(){alert('我会爬树')}}; //老虎对象的构造函数 function tiger(){ this.color = "ye
-
javaScript面向对象继承方法经典实现
JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是JavaScript的类型非常松散,也没有编译器.这样一来给了程序员很大的自由,也带来了一些缺陷. 虽然JavaScript不算是一门面向对象的语言.但是我们可以模仿着其他语言实现面向对象的方式来实现JavaScript的面向编程. 下面是JavaScript教程中非常经典的继承方法. 复制代码 代码如下: //定义一个Pet对象.通过这一个名称和数量的腿
-
javascript 面向对象继承
在prototype框架中的类继承实现机制 复制代码 代码如下: //为Object类添加静态方法:extend Object.extend = function(destination, source) { for(property in source) { destination[property] = source[property]; } return destination; } //通过Object类为每个对象添加方法extend Object.prototype.extend =
-
使用apply方法实现javascript中的对象继承
复制代码 代码如下: <script type="text/javascript"> //使用apply方法实现对象继承 function Parent(username) { this.username = username; this.sayHello = function() { alert(this.username); } } function Child(username, password) { Parent.apply(this, new Array(use
-
理解js对象继承的N种模式
本文分享了js对象继承的N种模式,供大家参考. 一.原型链继承 function Person(){}; Person.prototype = { constructor: Person, name: "Oliver" }; function People(){}; People.prototype = new Person(); People.prototype.constructor = People; People.prototype.sayName = function(){
-
Javascript中对象继承的实现小例
复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /** * json对象的格式 {key:value,key:value,key:value..} */ //创建对象的小例子
-
全面理解JavaScript中的继承(必看)
JavaScript中我们可以借助原型实现继承. 例如 function baz(){ this.oo=""; } function foo(){ } foo.prototype=new baz(); var myFoo=new foo(); myFoo.oo; 这样我们就可以访问到baz里的属性oo啦.在实际使用中这个样不行滴,由于原型的共享特点(数据保存在了堆上), 所有实例都使用一个原型,一但baz的属性有引用类型就悲剧了,一个实例修改了其他实例也都跟着变了...wuwuwu 自
-
javascript 中的继承实例详解
javascript 中的继承实例详解 阅读目录 原型链继承 借用构造函数 组合继承 寄生组合式继承 后记 继承有两种方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法. 由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支持实现继承,而且实现继承主要依靠原型链来实现. 下面介绍几种js的继承: 原型链继承 原型链继承实现的本质是重写原型对象,代之以一个新类型的实例.代码如下: function SuperType() { this.pr
-
javascript中对象的定义、使用以及对象和原型链操作小结
本文实例总结了javascript中对象的定义.使用以及对象和原型链操作.分享给大家供大家参考,具体如下: 1. 除了5种基本类型外,JS中剩下的就是对象 (1)对象的定义: 直接定义: var test={x:1,y:1} new方式创建: var test=new Object({x:1}) Object.create方式: var test=Object.create({x:1}) (2)对象上的赋值与取值 举例: var test={ x:1, y:2 } 方法一:可以通过test['x
-
JavaScript中对象的不同创建方法
javascript中的对象与一般的面向对象的程序设计语言(c++,Java等)不同,甚至很少有人说它是面向对象的程序设计语言,因为它没有类.javaScript只有对象,不是类的实例.javascript中的对象是基于原型的. 1.1句点运算符创建 javascript中的对象实际上就是一个由属性组成的关联数组,属性由名称和值组成,值的类型可以是任何数据类型,或者函数和其他对象. 创建一个简单对象: var foo = {}; foo.prop_1 = 'bar'; foo.prop_2 =
-
JavaScript中对象property的读取和写入方法介绍
JavaScript中,可以通过点号操作符"."或者中括号操作符"[]"来对对象的property进行读取和写入: 复制代码 代码如下: var o = {x:1, y:2}; console.log(o.x);//1 console.log(o["y"]);//2 o.y = 7; console.log(o["y"]);//7 值得注意的是,如果使用中括号操作符,则操作符内的值类型必须是string,或者能够转换成stri
-
关于JavaScript中JSON的5个小技巧分享
目录 1.格式化 2.隐藏字符串化数据中的某些属性 3.使用toJSON创建自定义输出格式 4.恢复数据 5.使用revivers隐藏数据 1. 格式化 默认的字符串化器还会缩小 JSON,看起来很难看 const user = { name: 'John', age: 30, isAdmin: true, friends: ['Bob', 'Jane'], address: { city: 'New York', country: 'USA' } }; console.log(JSON.str
-
JavaScript中对象property的删除方法介绍
JavaScript中,可以使用delete操作符来删除对象中的property: 复制代码 代码如下: var t = {a:42, b:26}; console.log(t);//Object {a=42, b=26} delete t.a; console.log(t);//Object {b=26} 这种property删除操作的局限性在于:delete操作符只能删除对象自身所有的property,无法删除其从prototype对象处继承而来的property.如果想删除prototyp
-
JavaScript中实现继承的三种方式和实例
javascript虽然是一门面向对象的语言,但是它的继承机制从一开始设计的时候就不同于传统的其他面向对象语言,是基于原型的继承机制,但是在这种机制下,继承依然有一些不同的实现方式. 方法一:类式继承 所谓的类式继承就是指模仿传统面向对象语言的继承方式,继承与被继承的双方都是"类",代码如下: 首先定义一个父类(或超类): function Person(name){ this.name=name; } Person.prototype.getName=function(){ retu
-
JavaScript中数组继承的简单示例
在写一些库时经常会用到树结构的数据,而且一些树形结构的数据对从根到叶的路径获取需求非常高.比如一个站点的整个路由表就是一棵这样的树,它的「路径」实际上就是 URL 中的 path 部分.所以我好几次都用了丧心病狂的数组继承去实现,下面给大家分享下. 在 JavaScript 中,数组也属于 Object 的一种,它也可以继承.任何两个对象本身就可以有继承关系,数组也不例外.于是我们让一个树的任何一个节点都是数组,它只维护自己下标最大的那个元素的值.其它元素的值通过原型继承从祖先节点继承而来.这样
随机推荐
- asp.net实现的计算网页下载速度的代码
- 从别人那拷下来的几点Session使用的经验
- Datalist控件使用存储过程来分页实现代码
- 详解Android中解析XML的方法
- 兼容FF/IE跟随鼠标的层的效果
- MySQL的root密码忘记怎么办 修改root密码的方式
- 探索PowerShell(十五) 引号与转义字符
- Lua中使用元表(metatable)执行算术类元方法实例
- C语言数据结构树的双亲表示法实例详解
- Linux下C语言的fork()子进程函数用法及相关问题解析
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- jQuery实现动态添加tr到table的方法
- JavaScript语言对Unicode字符集的支持详解
- extjs中form与grid交互数据(record)的方法
- JavaScript各类型的关系图解
- Java使用条件语句和循环结构确定控制流(实例)
- C# ping网络IP 实现网络状态检测的方法
- php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
- Python中常用信号signal类型实例
- Spring AOP如何整合redis(注解方式)实现缓存统一管理详解