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 IE 与 FF中兼容问题小结
Feb 18 Javascript
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
js下写一个事件队列操作函数
Jul 19 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
JavaScript实现简单的四则运算计算器完整实例
Apr 28 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
May 22 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
实现无刷新联动例子汇总
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/03 冲泡冲煮
也谈 PHP 和 MYSQL
2006/10/09 PHP
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
JavaScript小技巧 2.5 则
2010/09/12 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
13个PHP函数超实用
2015/10/21 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
python解析模块(ConfigParser)使用方法
2013/12/10 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
Python中查看文件名和文件路径
2017/03/31 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
如何理解python面向对象编程
2020/06/01 Python
Python排序函数的使用方法详解
2020/12/11 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
酒店人事主管岗位职责
2015/04/11 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
总结几个非常实用的Python库
2021/06/26 Python
python库sklearn常用操作
2021/08/23 Python
浅谈MySQL中的六种日志
2022/03/23 MySQL