天天看點

js中的5種資料類型進行值複制

有時候會遇到這樣的題目,要求對js中的5種資料類型進行值複制,那下面來進行一下實作吧

<!DOCTYPE html>

<html >

<head>

    <meta charset="UTF-8">

    <title>js中的5種資料類型進行值複制</title>

</head>

<body>

<script>

    function clone( obj ) {

        var copy;

        switch( typeof obj ) {

            case "undefined":

                break;

            case "number":

                copy = obj - 0;

                break;

            case "string":

                copy = obj + "";

                break;

            case "boolean":

                copy = obj;

                break;

            case "object":  //object分為兩種情況 對象(Object)和數組(Array)

                if(obj === null) {

                    copy = null;

                } else {

                    if( object.prototype.toString.call(obj).slice(8, -1) === "Array") {

                        copy = [];

                        for( var i = 0 ; i < obj.length ; i++ ) {

                            copy.push(clone(obj[i]));

                        }

                    } else {

                        copy = {};

                        for( var j in obj) {

                            copy[j] = clone(obj[j]);

                        }

                    }

                }

                break;

            default:

                copy = obj;

                break;

        }

        return copy;

    }

</script>

</body>

</html>

繼續閱讀