【笔记】javascript扩展内建对象举例

一、在php中有一个叫做in_array()的函数,主要用于查询数组中是否存在某个特定的值。

javascript中则没有一个叫做inArray()的方法。因此,通过Array.prototype来实现一个这样的功能:

Array.prototype.inArray = function(needle){

for(var i = 0,len = this.length; i < len; i++){

if(this[i] === needle){

return true;

}

}

return false;

};

/* test */

var a = [‘red‘,‘green‘,‘blue‘];

a.inArray(‘red‘);

--> true

a.inArray(‘yelloe‘);

--> false

二、在String的原型中增加一个reverse()方法,反转字符串

String.prototype.reverse = function(){

return Array.prototype.reverse.apply(this.split(‘‘)).join(‘‘);

}

‘hello world‘.reverse();

--> "dlrow olleh"

先用split()方法将目标字符串转换成数组,然后再调用该数组的reverse()方法产生一个反向数组。最后通过join()方法将结果数组转换为字符串。】

最佳实践:如果想要通过原型为某个对象添加一个新属性,务必先检查一下该属性是否已经存在。

eg:

if(!String.prototype.reverse){

String.prototype.reverse = function(){

return Array.prototype.reverse.apply(this.split(‘‘)).join(‘‘);

}

}

一些原型陷进:

1、当我们对原型对象执行完全替换时,可能会触发原型链中某种异常(exception);

2、prototype.constructor属性是不可靠的。

注意:当我们重写某对象的prototype时,重置相应的constructor属性是一个好习惯。

关于在这个,还可以看一下阮一峰老师做的笔记,里面写了很多例子和思考,是很好的阅读材料。

1、Javascript 面向对象编程(一):封装

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

2、Javascript面向对象编程(二):构造函数的继承

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

3、Javascript面向对象编程(三):非构造函数的继承

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html

时间: 2024-10-06 15:46:18

【笔记】javascript扩展内建对象举例的相关文章

JavaScript内建对象

JavaScript内建对象包括: String.Array.Math.Date.Boolean.Number.Event.RegExp. 使用内建对象的属性和方法需要使用new关键字和构造函数创建内建对象的实例,对象实例继承对象的属性和方法. String 定义了所有处理字符串的操作. Array 提供一个数组模型,存储大量有序数据. Math 定义了所有数学运算. Date 定义了所有处理日期和时间的操作. Boolean 定义了处理布尔值的操作. Number 定义了处理数字的操作. Ev

javascript——对象的概念——内建对象

包括内建对象的所有对象都是Object对象的子对象. 1.Array():构建数组的内建构造器函数 例:创建数组方式有两种: 2.Boolean:是对象,与基本数据类型 布尔值 不相同 例:创建Boolean对象. 上例中 a 是对象而不是布尔值.可以通过valueOf()获取其布尔值.通常 Boolean 对象不会用于创建对象,而是利用该对象强制转换数据类型. 在强制转换时,以下内容将被转换为 false:空字符串'';null;undefined;数字0;NaN;false; 例: 即:Bo

javascript 对象初探 (四)--- 内建对象Array

 我们不要去纠结神马是内建对象,神马是內建构造器.到后来你们便会发现其实她们都是对象. Array()是一个构建数组的內建构造器函数: var arr = new Array(); 与下面的是等效的: var arr = []; //数组文本表识法 无论数组是以神马方式创建的,我们都可以照常向里面添加元素. arr[0] = 1; arr[1] = 2; console.log(arr) // [1, 2] 当我们使用构造器函数Array()创建数组时,也可以通过传值的方式为其添加元素: var

ASP基础教程:ASP内建对象Server

通过前九篇的理论和实践,相信大家已经对 ASP 有了系统的了解,虽然至今为止,我们只学了 ASP 的 4 个内建对象,但已经完全能够写出一些实用的小程序了.今天,作者将继续给大家讲解最后一个 ASP 内建对象——Server. 在开始本次课程之前,我仍要在这里回答一些朋友们提出的比较普遍的问题.最近仍有不少朋友来信问我,如何构建服务器端的 Active Server Page 环境.我想可能是我在前几篇中没有讲清楚,因此,在本篇的开头有必要把这个问题详细阐述一遍. ASP 的应用完全是基于 Mi

内建对象

内建对象是指由ECMAScript事先提供的.不依赖于宿主环境的对象,这些对象在程序运行之前就已经存在了.可以直接在程序中任何地方任何时候拿来使用. 1. 内建全局单例对象   Global.Math.JSON. 在整个执行环境中只有一个对象实例,这些对象没有内部属性[[Construct]]和[[Call]],所以不能使用new来创建,也不能作为函数来调用,而是直接使用对象名称来引用其属性和方法(对于全局对象,则可以直接使用属性和方法名). 1.1  常用内建全局单例对象方法 Global对象

前端(五):JavaScript面向对象之内建对象

一.数据类型 js中数据类型分为两种,原始数据累次能够和引用数据类型. 1.原始数据类型 Undefined.Null.Boolean.Number.String是js中五种原始数据类型(primitive type). 2.引用数据类型 引用类型通常叫作类(class),凡是以new创建出来的对象都是引用数据类型.包括new Boolean.new Number等原始类. 3.原始值和引用值 原始值是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置.引用值时存储

JavaScript之基础-9 JavaScript String(内置对象、String概述)

一.JavaScript 内置对象 内置对象 - 什么是内置对象? 内置对象就是ECMAScript标准中已经定义好的,由浏览器厂商已经实现的标准对象 - 内置对象中封装了专门的数据和操作数据常用的API - JavaScript中内置对象列表 - String.Boolean.Number.Array.Date.RegExp.Math.Error.Function.Object.Global 包装类型 - 什么是包装类型? 专门封装原始类型的数据,并提供对数据常用操作的内置类型 - 为什么要用

ASP基础教程:ASP内建对象Response

在上一篇中作者给大家详细介绍了 ASP 内建对象之一 Request 的使用方法,相信各位通过一系列的实践已经能够熟练掌握,本篇将继续给大家介绍 ASP 的另一个内建对象 Response. 最近,有很多朋友来“妹儿”催我加快 ASP 篇一文的写作速度,并急切地询问哪里有关于 ASP 的教材.我深深地被大家的学习热情所打动,因此决定将自己平时所搜集的一些 ASP 信息资料拿出来和大家共享,也希望所有的朋友能慷慨地将自己搜集的有关 ASP 的资料告诉作者,谢谢.由于目前国内有关 ASP 的中文教材

ASP基础教程:ASP内建对象Application和Session

在上一篇中作者给大家详细介绍了 ASP 内建对象 Response 的使用方法,在这一篇中作者将继续给大家介绍另两个非常实用且重要的 ASP 的内建对象 Application 和 Session. 在 ASP 的内建对象中除了用于发送.接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象. 让我们先来看看 Application 对象.在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序.我们非但可以使用 Applicat