最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

toString()一个会自动调用的方法_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 20:47:18
文档

toString()一个会自动调用的方法_javascript技巧

toString()一个会自动调用的方法_javascript技巧:这一特性显然有助于你偷懒,当然也有利于实现一些特定的功能。为了说明这一特性,下面从一个实际开发案例说起。 如果在你的WEB项目中,有很多地方都需要输出像下面这样的一个列表HTML: 代码如下: JavaScript事件冒泡应用实例 执行AJAX返回HTML片段
推荐度:
导读toString()一个会自动调用的方法_javascript技巧:这一特性显然有助于你偷懒,当然也有利于实现一些特定的功能。为了说明这一特性,下面从一个实际开发案例说起。 如果在你的WEB项目中,有很多地方都需要输出像下面这样的一个列表HTML: 代码如下: JavaScript事件冒泡应用实例 执行AJAX返回HTML片段

这一特性显然有助于你偷懒,当然也有利于实现一些特定的功能。为了说明这一特性,下面从一个实际开发案例说起。

如果在你的WEB项目中,有很多地方都需要输出像下面这样的一个列表HTML:
代码如下:

  • JavaScript事件冒泡应用实例

  • 执行AJAX返回HTML片段中的JavaScript脚本



  • 很显然这是一个LI结构,也许你会想每次要输出这样结构的HTML,难道自己都要去拼这些LI标签吗?我能不能每次调用一个方法仅输入LI中间的文本内容,最终简单地得到一个完整的UL HTML结构呢。当然可以,程序的实现有N种方法,看看下面这种方法,这种方法显然简单而且科学:
    代码如下:
    function ulBuilder()
    {
    var lis = '';
    this.addLi = function(liText)
    {
    lis += '
  • ' + liText + '
  • ';
    };

    this.toString = function()
    {
    return '' + lis + '';
    };
    }

    var ulHtml = new ulBuilder();
    ulHtml.addLi('JavaScript事件冒泡应用实例');
    ulHtml.addLi('执行AJAX返回HTML片段中的JavaScript脚本');
    alert(ulHtml);

    在上面的代码中,我们定义了一个类叫ulBuilder,它有两个公开方法addLi、toString,addLi方法是添加一个包含内容的LI标签,而toString方法是生成最终需要的UL HTML。在这个类的实际使用过程中,你根本没有看到toString方法的调用,但是alert(ulHtml)却显示了完整的UL结构的HTML。

    实际上alert()的时候,脚本解析器会自动检查alert变量或对象的toString方法并调用它。在上面的例子中,是我们重写了toString方法,而恰好这个方法会由程序自动调用执行。

    话题扩展:
    1、在一些面向对象的开发语言中,比如C#、JAVA都有构造函数,这个构造函数显然作为类的一个成员方法,要想执行里面的代码,并不需要我们手动去调用这个方法,这个方法内部定义的代码会在类实例化的时候自动执行。当然,为了让系统能自动执行一些特定的方法,往往程序架构会对这些方法的命名规则有规定,比如构造方法的名称要与类名相同。像上面的例子中,如果把this.toString改成this.toUL,那么要想得到正确的结果只能像这样调用了alert(ulHtml. toUL())。

    2、由于toString方法可以被重写,有时候显的特别有用。看看下面的例子,试一下没有重写与重写后输出的结果有什么不同。这个例子显然很不健壮,比如对数组嵌套的情况没有作处理,而且实际意义也不大,只为让你知道可以这样做。
    代码如下:
    Array.prototype.toString = function()
    {
    return '[\'' + this.join('\',\'') + '\']';
    };
    var companys = ['Adobe','Apple','Google','Intel','Microsoft','Oracle','IBM','SUN'];
    alert(companys);

    下面再举一个例子,这个例子比上面例子实用些。正常情况下你alert(JSON)的时候,并不能看到JSON的真正结构,只弹出[object Object],试试下面的实现,也许这是你想要的结果。当然这个方法也是很不完善的,真要使用这样的功能,请到JSON官方站点去下载相关JS库吧:
    代码如下:
    var userInfo =
    {
    "name": "Mike",
    "age": 23,
    "phone": "020-87654321",
    "toString": function()
    {
    var objStr = '';
    for (var key in this)
    {
    if (typeof(this[key]) == 'string')
    objStr += '"' + key + '":"' + this[key] + '",';
    }
    return '{' + objStr.replace(/,$/, '') + '}';
    }
    }
    alert(userInfo);

    作者:WebFlash

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    toString()一个会自动调用的方法_javascript技巧

    toString()一个会自动调用的方法_javascript技巧:这一特性显然有助于你偷懒,当然也有利于实现一些特定的功能。为了说明这一特性,下面从一个实际开发案例说起。 如果在你的WEB项目中,有很多地方都需要输出像下面这样的一个列表HTML: 代码如下: JavaScript事件冒泡应用实例 执行AJAX返回HTML片段
    推荐度:
    标签: 一个 方法 js
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top