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

  • 相关阅读:
    在HTML中使用JavaScript
    七层网络模型
    JS执行机制
    继承
    变量作用域
    跨域
    ES6-Promise
    回调函数
    2019.3.9笔试
    CSS3新特性
  • 原文地址:https://www.cnblogs.com/kitebear/p/6500847.html
Copyright © 2011-2022 走看看