<script>
        function Sty(name, age) {
            this.name = name
            this.age = age

            // 放在这里的话  每次实例化,sing是个函数,属于复杂数据类型,每次都会开辟不同的内存空间,会存在浪费内存的情况
            // this.sing = function() {
            //     console.log("方法")
            // }
        }
        // 若是放在构造函数的原型对象上,可以实现共享该方法
        Sty.prototype.sing = function() {
            console.log("方法")
        }

        // 每次实例化,sing是个函数,属于复杂数据类型,每次都会开辟不同的内存空间,会存在浪费内存的情况
        var sy = new Sty('aa', 18)
        var sd = new Sty('bb', 18)

        // 这样的话,就可以实现sing方法的共享了
        sy.sing()
        sd.sing()

        // 为什么可以通过sy和sd 这些对象可以访问sing方法呐?是因为JS会默认个他们加上一个对象原型叫_ _proto_ _属性

        // 而该属性指向的是构造函数Sty的prototype原型对象,所以可以用它们去使用sing方法
    </script>