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方法和技巧大全
Dec 27 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
js导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
jquery无法设置checkbox选中即没有变成选中状态
Mar 27 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
jQuery Validate插件实现表单强大的验证功能
Dec 18 Javascript
js实现弹窗居中的简单实例
Oct 09 Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
vue实现百度语音合成的实例讲解
Oct 14 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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
用jscript实现列出安装的软件列表
2007/06/18 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
vue跨域解决方法
2017/10/15 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
Python基于DES算法加密解密实例
2015/06/03 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
迪奥官网:Dior.com
2018/12/04 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
考试退步检讨书
2014/01/15 职场文书
初一地理教学反思
2014/01/16 职场文书
趣味体育活动方案
2014/02/08 职场文书
Python爬取某拍短视频
2021/06/11 Python
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis