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 有趣而诡异的数组
Apr 06 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
Nov 28 Javascript
filters.revealTrans.Transition使用方法小结
Aug 19 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
Aug 06 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
全面详细的jQuery常见开发技巧手册
Feb 21 Javascript
利用JS实现页面删除并重新排序功能
Dec 09 Javascript
AngularJS监听ng-repeat渲染完成的方法
Mar 20 Javascript
浅析JS中回调函数及用法
Jul 25 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
JS实现可视化音频效果的实例代码
Jan 16 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
php扩展ZF――Validate扩展
2008/01/10 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
PHP强制转化的形式整理
2020/05/22 PHP
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python不带重复的全排列代码
2013/08/13 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
Python数据可视化图实现过程详解
2020/06/12 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
五四青年节演讲稿
2014/05/26 职场文书
高考励志标语
2014/06/05 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
护士节活动总结
2014/08/29 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android