账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    我被javascript红宝书5.2.2转换方法里的一段例子卡住了
    58
    0

    红宝书,5.2.2 转换方法

    toLocaleString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。当调用数组的toLocaleString()方法时,它也会创建一个数组值的以逗号分隔的字符串。而与前两个方法唯一的不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法,请看下面这个例子:

    大神们,我就直接上代码了:

    var person1 = {
        toLocaleString : function () {
            return "Nikolaos";
        },
        toString : function() {
            return "Nicholas";
        } 
    };
    
    var person2 = {
        toLocaleString : function () {
            return "Grigorios";
        },
        toString : function() {
            return "Greg";
        } 
    };
    
    var people = [person1, person2];
    alert(people);                        //Nicholas,Greg
    alert(people.toString());             //Nicholas,Greg
    alert(people.toLocaleString());       //Nikolaos,Grigorios

    其实对这一章的陈述和代码,表示很多地方弄不清楚:
    1、alert(people)为什么将people这个数组传递给alert( ),输出的结果是Nicholas和Greg?
    2、person1和person2这两个对象,它们分别定义了toString()和toLocaleString( )方法,这两个方法返回不同的值。但这两个对象里自定义的方法和后来调用的alert(people.toString())和alert(people.toLocaleString())不冲突么?

    alert(people.toString());             //Nicholas,Greg
    alert(people.toLocaleString());       //Nikolaos,Grigorios

    3、上面的结果,到底是因为对象自定义的两个方法得来的,还是直接通过调用得来的?可以简单的告诉我一下这个过程是什么样的么?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 灵猴指路 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部