zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    TCP流量控制
    TCP可靠传输的实现
    springbean补充:关于bean的属性
    mybatis分页插件,自动生成代码插件
    mybatis拦截器,分页插件
    mybatis注解开发
    mybatis缓存
    mybatis调用存储过程
    Oracle学习笔记12:oracle优化
    Oracle学习笔记11:触发器
  • 原文地址:https://www.cnblogs.com/kitebear/p/6500847.html
Copyright © 2011-2022 走看看