JavaScript中String.prototype用法实例


Posted in Javascript onMay 20, 2015

本文实例讲述了JavaScript中String.prototype用法。分享给大家供大家参考。具体如下:

// 返回字符的长度,一个中文算2个
String.prototype.ChineseLength=function()
{ 
  return this.replace(/[^\x00-\xff]/g,"**").length;
}
// 判断字符串是否以指定的字符串结束
String.prototype.EndsWith = function(str) 
{
  return this.substr(this.length - str.length) == str;
}
// 去掉字符左端的的空白字符
String.prototype.LeftTrim = function()
{
  return this.replace(/(^[\\s]*)/g, "");
}
// 去掉字符右端的空白字符
String.prototype.RightTrim = function()
{
  return this.replace(/([\\s]*$)/g, "");
}
// 判断字符串是否以指定的字符串开始
String.prototype.StartsWith = function(str) 
{
  return this.substr(0, str.length) == str;
}
// 去掉字符两端的空白字符
String.prototype.Trim = function()
{
  return this.replace(/(^\s*)|(\s*$)/g, "");
}

这就是我们经常看到的为内部对象, 如 String, Math 等再添加其它属性和方法的技巧. 对于任何的内部对象和自定义对象, 你都也可以通过 prototype 来重载其下的属性和方法. 那么在调用执行时, 它将调用你所定义的方法和属性. 下面是示例:

// 为内部 String 对象添加方法
String.prototype.myMethod = function(){
 return "my define method";
}
// 为内部 String 对象重载方法
String.prototype.toString = function(){
 return "my define toString method";
}
var myObj = new String("foo");
alert(myObj.myMethod());
alert(myObj);
alert("foo".toString());

另外需要注意的是, 所有 JavaScript 内部对的 prototype 属性都是只读的. 你可以像上面那样为内部对象的原型添加或重载属性和方法,但不能更改该内部对象的 prototype 原型. 然而, 自定义对象可以被赋给新的原型. 也就是说, 像下面这样做是没有意思的.

function Employee() {
 this.dept = "HR";
 this.manager = "John Johnson";
}
String.prototype = new Employee;
var myString = new String("foo");

上面的程序在运行之后不会报错, 但显然, 如果你调用 myString.dept 将会得到一个非定义的值.

另外, 一个经常使用的是 prototype 下的 isPrototypeOf() 方法, 它主要用来判断指定对象是否存在于另一个对象的原型链中. 语法如下:

object1.prototype.isPrototypeOf(0bject2);

上面的格式是用来判断 Object2 是否出现 Object1 的原型链中. 示例如下:

function Person() {
 this.name = "Rob Roberson";
 this.age = 31;
}
function Employee() {
 this.dept = "HR";
 this.manager = "John Johnson";
}
Employee.prototype = new Person();
var Ken = new Employee();

当执行 Employee.prototype.isPrototypeOf(Ken), Person.prototype.isPrototypeOf(Ken) 和 Object.prototype.isPrototypeOf(Ken) 时, 结果都会返回 true.

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
window.location和document.location的区别分析
Dec 23 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
Apr 25 Javascript
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
Jquery Ajax请求代码(2)
Jan 07 Javascript
制作jquery遮罩层效果导航菜单代码分享
Dec 25 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
Oct 29 Javascript
关于JS中二维数组的声明方法
Sep 24 Javascript
快速解决处理后台返回json数据格式的问题
Aug 07 Javascript
深入了解js原型模式
May 30 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
js 解析 JSON 数据简单示例
Apr 21 Javascript
基于js实现判断浏览器类型代码实例
Jul 17 Javascript
实现无刷新联动例子汇总
May 20 #Javascript
javascript中CheckBox全选终极方案
May 20 #Javascript
javascript消除window.close()的提示窗口
May 20 #Javascript
在JS方法中返回多个值的方法汇总
May 20 #Javascript
AspNet中使用JQuery上传插件Uploadify详解
May 20 #Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 #Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
May 20 #Javascript
You might like
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
2013/07/02 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
python如何运行js语句
2020/09/09 Python
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
公司门卫的岗位职责
2014/02/19 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
捐款仪式主持词
2015/07/04 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
详解Django的MVT设计模式
2021/04/29 Python