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 相关文章推荐
javascript delete 使用示例代码
Mar 29 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
jquery 实现上下滚动效果示例代码
Aug 09 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
日期时间范围选择插件:daterangepicker使用总结(必看篇)
Sep 14 Javascript
Node.js搭建WEB服务器的示例代码
Aug 15 Javascript
Vue中的Props(不可变状态)
Sep 29 Javascript
vue中使用mxgraph的方法实例代码详解
May 17 Javascript
JS+canvas五子棋人机对战实现步骤详解
Jun 04 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输出Excel文件类
2010/02/08 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
php使用codebase生成随机数
2014/03/25 PHP
php注册登录系统简化版
2020/12/28 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
gearman的安装启动及python API使用实例
2014/07/08 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
党支部综合考察材料
2014/05/19 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
上学路上观后感
2015/06/16 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
关于MySQL中的 like操作符详情
2021/11/17 MySQL