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 获取表单file全路径
Dec 31 Javascript
JS获取浏览器版本及名称实现函数
Apr 02 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
javascript实现回到顶部特效
May 06 Javascript
ajax如何实现页面局部跳转与结果返回
Aug 24 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
谷歌Chrome浏览器扩展程序开发小记
Jan 06 Javascript
快速掌握Node.js事件驱动模型
Mar 21 Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
Sep 01 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
PHP之变量、常量学习笔记
2008/03/27 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
2011/08/09 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
超清晰的document对象详解
2007/02/27 Javascript
Jquery 基础学习笔记
2009/05/29 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python多进程编程技术实例分析
2014/09/16 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python中的默认参数实例分析
2018/01/29 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
法制宣传日活动总结
2014/04/29 职场文书
秋冬农业生产标语
2014/10/09 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
PHP控制循环操作的时间
2021/04/01 PHP