- 浏览: 155987 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (137)
- JavaScript (23)
- get post (0)
- SSH (4)
- Hibernate (1)
- cmd (2)
- 火狐 IE (1)
- 中英文环境模板下载 (1)
- 日期 (0)
- 其他总结 (5)
- 正则校验 (3)
- Sql Server (0)
- FreeMarker (1)
- 继承 (1)
- SQL (2)
- ORACLE -- SQL Server -- Access 常见Sql语句的区别 (1)
- ORACLE -- SQL Server -- Access 常见Sql语句的区别 (0)
- 解决int和Integer不能互转 (0)
- 原子类 (1)
- Final,finally,finalize的区别 (1)
- Web前端 (12)
- Reader InputStream (1)
- 线程 (1)
- JDBC (1)
- AJAX (3)
- Linux (2)
- 素数 (1)
- 接口-----继承 (1)
- 数据库查询性能优化 (1)
- Spring MVC3 深入了解 (1)
- JS (18)
- log4j简介 (1)
- Java序列化的机制和原理 (0)
- allowTransparency属性 (1)
- 测试类 (1)
- CSS (14)
- JQuery (10)
- 多线程 (1)
- 数据库 (2)
- Spring 注解 (1)
- JSTL标签库 (1)
- HTML (8)
- 界面设计 (4)
- 测试 (4)
- 职业生涯 (1)
- 数据可视化 (1)
- UI设计 (3)
- eclipse怎样生成javadoc (2)
- redis memcache 比较 (1)
- Windows 8系统IE10无法安装Flash Player插件的解决办法 (1)
- IE7 问题 (1)
- 常用JS验证 (1)
- Hadoop,MapReduce学习步骤 (1)
- 开始-运行-命令大全 (1)
- jQuery与ExtJS优缺点比较 (1)
- Oracle (1)
- 文档转换 (1)
- Maven与Ant比较 (1)
最新评论
-
谁说我不是会员:
很给力的文章,通俗易懂
Get请求和Post请求的区别 -
Spirit_eye:
请问一个图片按钮怎么置灰
按钮置灰跟按钮不显示
js继承的几种实现方法
[size=x-small]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> New Document </title> <script type="text/javascript"> /* <!-- --------------继承的第一种方式:对象冒充------ --> function Parent(name){ this.name = name; this.showInfo = function(){ document.write(name); document.write("</br>"); } } function Children(name, pwd){ //下面三行代码实现了子对象和父对象指向同一个引用 //关键的代码 this.method = Parent;this.method(name);delete this.method; this.pwd = pwd;this.showMsg = function(){ document.write(this.pwd); document.write("</br>"); } } var parent = new Parent("John"); var child = new Children("Bob", 123); parent.showInfo(); // child.showInfo(); child.showMsg(); document.write(""); document.write("</br>"); //call方法,是function里的一个方法。 //------------------call方法简单示例---------------- function test(str) { document.write(this.name + "," + str+"</br>"); } var person = new Object(); person.name = "anllin"; //相当于调用了test方法test.call(person, "welcome"); //将person赋给了test里的this。 document.write(""); document.write("</br>"); */ /* //-------------继承的第二种方式,call方法--------------------- function Father(name){ this.name = name; this.showName = function(){ document.write(this.name + "<br />"); } } function Sub(name, pwd){ //关键的代码 :this是方法执行时上下文相关对象,name是传给Father方法的参数 Father.call(this, name); this.name = name; this.pwd = pwd; this.showPwd = function(){ document.write(this.pwd+"<br />"); } } var father = new Father("Father's name"); var sub = new Sub("Sub's name", 123456); father.showName(); sub.showName(); sub.showPwd(); document.write(""); document.write("<br />"); */ /* //--------------继承的第三种方式,apply方法------------------ function Mother(name){ this.name = name; this.showName = function(){ document.write(this.name + "</br>"); } } function Daugther(name, pwd){ //关键的代码 : 第一个参数是方法执行时上下文相关对象,第二个参数是一个参数数组。 Mother.apply(this, new Array(name)); this.pwd = pwd; this.showPwd = function(){ document.write(this.pwd + "<br>"); } } var mother = new Mother("Mother’s name"); var daugther = new Daugther("Daugther's name", 654321); mother.showName(); daugther.showName(); daugther.showPwd(); document.write(""); document.write("</br>"); */ /* //----------继承的第四种方式,prototype chain方式---------- //缺点:无法给构造函数传参数。 function Human(){ } Human.prototype.name = "human'name"; Human.prototype.showName = function(){ document.write(this.name+"<br>"); } function Student() { } //关键的代码 Student.prototype = new Human(); Student.prototype.password = 456789; Student.prototype.showPwd = function(){ document.write(this.password + "<br>"); } var human = new Human(); var student = new Student(); student.name = "student'name "; human.showName(); student.showName(); student.showPwd(); document.write(""); document.write("</br>"); */ /* //-------------继承的第五种方式,混合方式--------------- function FatherClass(name){ this.name = name; } FatherClass.prototype.showName = function(){ document.write(this.name + "<br>"); } function SubClass(name, pwd){ //关键的代码 FatherClass.call(this,name); this.pwd = pwd; } //关键的代码 SubClass.prototype = new FatherClass; SubClass.prototype.showPwd = function(){ document.write(this.pwd + "<br>"); } var f = new FatherClass("FatherClass"); var s = new SubClass("SubClass", 45678); f.showName(); s.showName(); s.showPwd(); */ </script> </head> <body> </body> </html> [/size]
发表评论
-
web前端页面性能优化小结
2014-04-25 10:21 643web前端页面性能优化小 ... -
jQuery与ExtJS优缺点比较
2014-03-18 11:36 2040jQuery与ExtJS优缺点比较 jQuery 主页:h ... -
LABjs、RequireJS、SeaJS 哪个最好用?为什么?
2014-03-14 11:15 596LABjs、RequireJS、SeaJS 哪 ... -
offsetHeight, clientHeight与scrollHeight的区别
2014-01-22 14:24 668offsetHeight, clientHeight与scro ... -
表单提交后不刷新当前页面
2014-01-17 15:28 1264<form name='form1' id='for ... -
input失去焦点和获得焦点jquery焦点事件
2014-01-17 14:47 997input失去焦点和获得焦点jquery焦点事件 input ... -
html5 在IE6/IE7/IE8中使用html5标签
2014-01-13 11:26 5040html5 在IE6/IE7/IE8中使用html5标签 h ... -
李炎恢--JS视频
2013-05-21 15:40 800李炎恢--JS视频 http://wenku.baidu.co ... -
SeaJS-----GitHub Issues
2013-05-20 16:17 756SeaJS 是直接通过 GitHub Issues 来管理, ... -
CMD 模块定义规范
2013-05-15 10:45 336CMD 模块定义规范 https://github.co ... -
Javascript模块化编程(三):require.js的用法
2013-05-15 10:44 536Javascript模块化编程(三):require.js的 ... -
Sea.js 手册与文档
2013-05-15 09:30 588Sea.js 手册与文档 http://www.zhang ... -
sea.js 小记
2013-05-14 11:38 790sea.js 小记 看目录结构,代码不算多,命名划分很清晰, ... -
jQuery 实现多级下拉菜单导航
2013-03-13 11:39 4893JavaScript 实例教程 – jQuery 实现多级下拉 ... -
JS睡眠function
2013-03-05 11:37 1825JS睡眠function function sle ... -
iframe高度动态自适应
2013-03-04 14:37 612iframe高度动态自适应 http://www.cnbl ... -
JS如何创建对象及实现继承
2013-03-04 14:36 619JS如何创建对象及实现继承 【原型】 1. 什么 ... -
打印页面指定区域的js源码
2012-12-05 14:44 682<script type="text/ ... -
一道基础例题的思考
2012-12-05 14:30 687引用 <script type="text/j ... -
pager-taglib -- 分页标签用法
2012-08-09 10:10 788pager-taglib -- 分页标签用法 Usin ...
相关推荐
本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型(prototype)机制是实现继承的基础。每个函数都有一个prototype属性,这个属性指向一个对象,这个对象的属性和方法可以被...
JavaScript 的 9 种继承实现方式归纳 JavaScript 中的继承方式是基于原型的,与基于类的编程语言,如 C++ 和 Java,截然不同。JavaScript 的灵活性使得其实现继承的方式非常多样化。本文将介绍 JavaScript 中的 9 ...
javascript的几种继承方法介绍.doc
本文将详细介绍JavaScript中的三种主要继承方法:原型链继承、构造函数继承以及组合继承。 1. **原型链继承**: - 概念:每个JavaScript函数都有一个`prototype`属性,这个属性是一个对象,当创建一个新对象时,这...
下面将详细介绍几种常见的继承实现方式,并探讨它们的特点与应用场景。 #### 一、原型链继承 **核心思想**: 将父类的实例设置为子类的原型。 **实现方式**: ```javascript function Animal(name) { this.name = ...
### JavaScript继承的三种方法实例详解 #### 一、概述 在JavaScript中,虽然原生语言层面没有提供传统意义上的“类”这一概念,但它通过构造函数和原型链等机制实现了类的功能,尤其是继承这一核心概念。继承是...
### JavaScript中的几种继承方法示例 #### 一、原型链继承 **原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个...
实现继承主要有以下几种方式: 1. **原型链继承**:这是最基础的继承方式,通过修改子类的`prototype`为父类的实例,实现共享父类的属性和方法。例如: ```javascript function subObj() {} subObj.prototype = ...
JS继承的几种方式的附录源码
本篇将深入探讨一种实现继承的工具函数方法,主要聚焦于`source.js`文件中可能包含的内容。通过阅读这篇博文(链接已提供),我们可以学习如何构建自己的继承工具函数,并理解其工作原理。 在JavaScript中,常见的...
以上就是JavaScript中几种常见的继承方式,每种方式都有其适用场景和局限性。在实际开发中,根据具体需求选择合适的继承方式是非常重要的。例如,在需要传递初始化参数时,可以考虑使用构造函数继承或组合继承;而在...
以下就是几种在JavaScript中实现继承的方式。 对象冒充(Pseudoclassical Inheritance): 对象冒充是利用构造函数和函数的call方法来实现的。构造函数使用this关键字定义属性和方法,而call方法则可以调用指定对象...
主要有以下几种继承方式: 1. **原型链继承**:JavaScript的对象都有一个proto属性,指向创建它的函数的原型对象。通过修改原型对象,可以实现属性和方法的继承。这是JavaScript中最基础的继承方式。 2. **构造...
它使用原型链实现方法的继承,同时又利用构造函数来继承父对象的属性。组合继承避免了子对象共享父对象引用类型属性的问题,同时也继承了父对象原型链上的方法。其主要缺点是调用了两次父构造函数,一次是在创建子...
在JavaScript中,主要有以下几种继承方法: 1. **原型链继承** 原型链继承是JavaScript中最基础的继承方式,利用原型对象(`__proto__`或`prototype`)之间的链接实现。每个构造函数都有一个`prototype`属性,这个...
JavaScript中的继承是面向对象编程的重要概念,它允许创建基于现有对象的新对象,这些新对象能够继承已有对象的属性和方法。在JavaScript中,有多种实现继承的方式,主要包括原型链继承、构造继承、组合继承以及寄生...
配合我的博文 js 之几种继承的方式一起学习,欢迎大家交流指正
JavaScript继承机制探讨及其应用 JavaScript是一门弱类型语言,具有函数式编程和面向对象编程的特点。随着近几年JavaScript生态圈的发展和成熟,项目的编码量和复杂度也在呈几何级数增长。JavaScript面向对象编程中...
在JavaScript中,有多种实现继承的方式,每种都有其优缺点,适用于不同的场景。 首先,我们来看**原型链继承**。这种方式是通过将父类的实例赋值给子类的原型来实现的。例如: ```javascript function Person(name...