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 预解析
Oct 25 Javascript
基于JQuery的简单实现折叠菜单代码
Sep 15 Javascript
Android中资源文件(非代码部分)的使用概览
Dec 18 Javascript
在javascript中关于节点内容加强
Apr 11 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
Mar 04 Javascript
JS实现两个大数(整数)相乘
Apr 28 Javascript
详解iframe与frame的区别
Jan 13 Javascript
javascript 初学教程及五子棋小程序的简单实现
Jul 04 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 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
第九节 绑定 [9]
2006/10/09 PHP
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PDO::inTransaction讲解
2019/01/28 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
python里运用私有属性和方法总结
2019/07/08 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
高性能装备提升营地:Kammok
2019/02/27 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
运动会加油稿20字
2014/11/15 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
公司内部升职自荐信
2015/03/27 职场文书
综治目标管理责任书
2015/05/11 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
Python图像处理库PIL详细使用说明
2022/04/06 Python