这周五,去百度面试Web前段开发工程师,与面试官讨论到JavaScript继承问题,由于平时使用较少,也没说出多少东西。遂回来差了点资料。
观点:在JavaScript中,function相当于Java语言定义的类。
定义方式如下:
function foo(x){ //用this指定foo的成员变量x this.x = x; //这个y是foo的私有变量,无法被继承 var y = "This is a y"; this.z = "A z"; }
1.变量的继承
定义fooc并继承foo的成员变量:
function fooc(){ foo.apply(this, arguments); //fooc自己的成员变量 this.m = "An m"; }
测试:
var fooc = new fooc("An x"); alert("fooc.x: "+fooc.x +"\n"+ "fooc.y: "+fooc.y +"\n"+ "fooc.z: "+fooc.z +"\n"+ "fooc.m:"+fooc.m );//从测试结果可得出fooc继承了foo的x和z变量。
2.方法的继承
面试中,方法的继承提到了函数原型(prototype),实现方法的继承。
//使用原型,则有foo()定义的对象都可以使用该函数。 foo.prototype.hasx = function(){alert(this.x);} //采用原型式继承,则每个由fooc()定义的对象都拥有foo对象的方法。 fooc.prototype = new foo(); fooc.prototype.hasm = function(){alert(this.m)};
测试:
//成功继承foo的hasx()方法 fooc.hasx(); fooc.hasm();
Ps:在方法继承中有涉及到“原型链”。关于原型链有待进一步学习。
原型链可以参阅下面的文章,讲的挺清晰
http://www.coolwubo.com/work/55649165e68f14d12eb02bda
相关推荐
Fiber.js 是来自 Linkedin 的一个轻量级的 JavaScript 对象继承模型。示例代码:// Animal base class var Animal = Fiber.extend(function() { return { // The `init` method serves as the ...
先从一个问题进行研究深入,什么是javascript对象继承? 比如我们有一个“动物”对象的构造函数。 function animal() { this.type = '动物'; } 还有一个“猫”对象的构造函数。 function cat(name,color) { ...
js javascript zInherit 对象 继承
JavaScript面向对象继承详解,js进阶高手必读,内含六部分
Uberproto是一个简单的基础对象,它为JavaScript中的ECMAScript 5样式对象继承添加了一些糖。 简而言之,这是它的作用: 轻松扩展对象 初始化方法 超级方法 混合蛋白 方法代理 占用空间小(最小约0.5Kb)并且仅...
在JavaScript中继承是一个非常复杂的话题,比其他任何面向对象的语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。与它们不同,在JavaScript中要想达到传承公用成员的目的,...
浅谈JavaScript对象与继承_.docx
javaScript面向对象继承方法经典实现.docx
javascript创建对象、对象继承的有用方式详解_.docx
函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...
函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...
Javascript面向对象与继承
主要介绍了Javascript中对象继承的实现,需要的朋友可以参考下
函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...
基类:提供给其他类可以继承的类 派生类:由基类继承而来的类 javascript对象继承通常有下面的5种方式: 1.对象冒充 2.call()方式 3.apply()方式 4.原型链 5.混合方式 A.对象冒充 所谓对象冒充,就是新的类冒充旧的类...
原型是理解继承概念的关键, 我们将会教你如何建立原型, 如何检测一个对象是否是另外一个对象的原型, 及其 JavaScript 的模型与Java 面向对象编程之间的区别。我们同样会向你展示如何检测对象所包含的各种属性的方法...
JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht
本文实例为大家介绍了javascript实现继承的6种方式,分享给大家供大家参考,具体内容如下 1、【原型链继承】实现的本质是重写原型对象,代之以一个新类型的实例。实际上不是SubType的原型的constructor属性被重写了...
面向对象概念(对象封装,各种继承,闭包原理,this作用域等)介绍清晰易懂