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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 Javascript
jQuery实现视频作为全屏幕背景
Dec 18 Javascript
原生js结合html5制作简易的双色子游戏
Mar 30 Javascript
JavaScript 变量、作用域及内存
Apr 08 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 Javascript
jQuery选择器之属性筛选选择器用法详解
Sep 19 jQuery
JS中offset和匀速动画详解
Feb 06 Javascript
小程序采集录音并上传到后台
Nov 22 Javascript
Js实现复选框的全选、全不选反选功能代码实例
Feb 28 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(1)
2006/10/09 PHP
20个PHP常用类库小结
2011/09/11 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
解析PHP的session过期设置
2013/06/29 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
php限制文件下载速度的代码
2015/10/20 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
express框架下使用session的方法
2019/07/31 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python的面向对象思想分析
2015/01/14 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Python中format()格式输出全解
2019/04/12 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
python 实现识别图片上的数字
2019/07/30 Python
印尼购物网站:iLOTTE
2019/10/16 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
幸福家庭事迹材料
2014/02/03 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
庆元旦活动总结
2014/07/09 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
如何Tomcat中使用ipv6地址
2022/05/06 Servers