之前我是这样定义一个对象的:
            function Man(name,age) {
                //公有字段
                this.Name = name;
                //私有字段
                var age;
                //私有方法
                function show() {
                    alert(gm.Name + " is " + age + " years old");
                }
                //公有方法
                this.Show = function () {
                    show();
                };
                var gm = this;
            }
            var m = new Man('jack', 10);
            m.Show();
后来听说,每创建一个对象它都会创建独立的成员,如果是字段还行,但是方法的话就没必要于是,查了下资料,有函数原型这个概念,并可以用混合构造函数/函数原型的方式定义一个对象,于是修改后:function Man(name, age) {
                //公有字段
                this.Name = name;
                //私有字段
                var age;
            }
            //本来是私有方法
            Man.prototype.show = function () {
                alert(this.Name + " is " + age + " years old");
            }
            //公有方法
            Man.prototype.Show = function () {
                this.show();
            };
            引发的问题是,外部定义的方法都是公有,而且不能访问私有字段age难道js对象不能定义私有的成员???