下面该是扩展内建类的部分了~~
扩建内建类
JavaScript用来嵌入在那些能够向脚本环境暴露自己本地对象的程序中。这些对象通常描述为内建类或者宿主对象,它们与我们讨论过的用户定义对象有某种程度的差别。尽管如此,原型机制也可以与内建类协同工作。在Web浏览器中,DOM节点在IE浏览器中不能扩展,但是其他的核心类在所有主要的浏览器中都是可以扩展的。如Array类,Object类。
Array.prototype.indexOf() = function(obj)
{
var result = -1;
for(var i = 0; I < this.length; i++)
{
if(this[i] == obj)
{
result = i;
break;
}
}
return result;
}
为Array对象提供了一个额外的函数,它返回一个给定数组中的对象的数字索引,如果数组不包含这个东西就返回-1.
如下增加一方法来检查数组是否包含对象:
Array.prototype.contains = function(obj)
{
return (this.indexOf(obj) >=0 );
}
如下在前面基础上,重复检查后添加新成员:
Array.prototype.append = function(obj,nodup)
{
if(!(nodup && this.contains(obj)))
{
this[this.length] = obj;
}
}
特别注意:任何在这些函数声明之后创建的Array对象,无论是使用new操作符或者作为JSON表达式的一部分来创建,都能够使用这些函数:
var numbers = [1,2,3,4,5];
var got8 = numbers.contains(8);
numbers.append(“cheese”,true);
对于原型,建议只在程序的开始修改一次,以免不必要的混乱。
接下来如果不希望定义不同的对象类型,而希望在类型之间实现继承。JavaScript没有提供方便的方法来做这件事情,但是原型在这里也可以派上用场。
原型的继承
继承有一个作用域(scope)的概念。一个对象的方法或属性确定了谁可以使用它——即,它是否是公用的,私有的或者受保护的。
当定义一个领域模型时,作用域和继承是很有用的特征。但是,JavaScript对这两者都没有在本地实现。尽管如此,总是会有一些相当优雅的解决方案。
Doug Crockford开发了一些灵巧的变通方法,使得JavaScript对象中能够使用继承和作用域。但是复杂,所以有兴趣自己去看吧。
在面向对象领域中,有一种逐渐远离使用复杂的继承,转向使用组合的趋势。通过使用组合,普通的功能移出了对象而转到帮助类中,帮助类可以作为一个成员附加到任何需要它的类上面。在很多场合,组合可以提供与继承相似的优点,JavaScript可以完美而充分得支持组合。
下一站即将是反射(reflection),ready~~~~~
分享到:
相关推荐
在给定的文件中,“JavaScript_数据结构_算法_学习笔记仓库_1741867528.zip”这一标题指出了文件的性质和内容范围,即这是一份关于JavaScript编程语言中数据结构和算法学习的笔记仓库。其中的数据结构涵盖了如数组、...
例如,JavaScript的数组可以直接使用各种内建方法来进行复杂的操作,如排序、映射、过滤等,这些都是数据结构应用的典型场景。 通过本套笔记的学习,学习者能够将理论与实践相结合,通过JavaScript语言实现数据结构...
前端开发_JavaScript_全栈学习笔记_资料汇编_1743033614
本压缩包“JavaScript学习笔记_js常用函数封装_js包.zip”包含了对JavaScript基础及进阶技巧的学习资料,特别关注了函数封装和模块化开发实践。 首先,`tool.js`可能是一个实用工具函数集合,封装了一些常见的...
java开发学习
java开发学习
HTML+CSS+JavaScript教程学习笔记HTML+CSS+JavaScript教程学习笔记 HTML+CSS+JavaScript教程学习笔记HTML+CSS+JavaScript教程学习笔记 HTML+CSS+JavaScript教程学习笔记HTML+CSS+JavaScript教程学习笔记 ...
南师大教育技术学考研南邮java实验二类继承笔记_JavaScript入门经典
本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...
4. 函数:JavaScript中的函数是第一类对象,可以作为参数传递,也可以作为返回值。例如,`function add(a, b) { return a + b; }`定义了一个简单的加法函数。 5. 对象:JavaScript的对象是键值对的集合,可以通过...
JavaScript学习笔记讲解版参考.pdf是一份详尽的教程,涵盖了从基础到进阶的JavaScript知识。这份笔记首先从CSS样式表开始,引导读者理解网页样式的设置与应用。 1. CSS(Cascading Style Sheets)样式表是用于控制...
前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar ...
java开发学习
Javascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript学习笔记PPTJavascript...
Javascript学习笔记_自学实用 原创笔记,整理得很不错,适合初学者,推荐大家!
《javascript高级编程》学习笔记
"Javascript学习笔记(传智播客视频学习笔记+代码)"是一份全面介绍JavaScript基础知识的学习资源,适用于初学者。这份笔记结合了传智播客的web前端培训视频内容,提供了丰富的理论讲解和实践代码,帮助读者从零开始...
这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...
本文档深入探讨了JavaScript中的面向对象特性,包括类、对象、继承、封装和多态性。 在JavaScript中,面向对象主要通过构造函数和原型链实现。构造函数是一种特殊的函数,用于创建和初始化对象。当你使用`new`...