• valueof toString


    valueof toString


    add(1)(2) // 3

    add(1, 2, 3)(10) // 16

    add(1)(2)(3)(4)(5) // 15



    function add() {

        var args = Array.prototype.slice.call(arguments);


        return function() {

            var arg2 = Array.prototype.slice.call(arguments);

            return args.concat(arg2).reduce(function(a, b){

                return a + b;

            });

        }

    }


    add(1)(2) // 3

    add(1, 2)(3) // 6

    add(1)(2)(3) // Uncaught TypeError: add(...)(...) is not a function(…)



    function add () {

    var args = Array.prototype.slice.call(arguments);


    var fn = function () {

    var arg_fn = Array.prototype.slice.call(arguments);

    return add.apply(null, args.concat(arg_fn));

    }


    fn.valueOf = function () {

    return args.reduce(function(a, b) {

    return a + b;

    })

    }


    return fn;

    }


    var a = {a : 1}

    undefined

    a + 1

    "[object Object]1"



    a = {

     toString () {

       return '1111'

     }

    }

    Object {}

    a + 1

    "11111"



    var aa = {

     toString : function () {

    return {}

     },

     valueOf : function () {

      return '+1'

     }

    }

    undefined

    aa + 1

    "+11"



    function xdh () {

    }


    xdh.valueOf = () => {

      console.log("valueof")

     return {}

    }


    xdh.toString = () => {

      console.log("toString")

      return 'sadasda'

    }

    () => {

      console.log("toString")

      return 'sadasda'

    }

    xdh

    VM3052:6 valueof

    VM3052:11 toString

    sadasda



    object 一般情况下 先调用 valueOf 后调用toString

  • 相关阅读:
    抽奖概率算法
    redis启动异常
    php如何快速读取大文件
    nginx反向代理解决跨域
    sublime修改侧边栏字体
    curl
    公众号开发一
    数组
    在windows下用vagrant建立lnmp开发环境
    gets--vs--fgets
  • 原文地址:https://www.cnblogs.com/kitebear/p/6500847.html
Copyright © 2020-2023  润新知