为什么要扩展方法?
可以直接写成
class1.saySorry=function(){....}
增加方法呀

解决方案 »

  1.   

    1、this 代表这个类实例自已。该类中的所有对象,包括属性,方法2、类名.prototype.属性名 = 属性值; 
      

  2.   

    1.对
    2.对
    3.对
    4.prototype表示了函数的原型=〉(某函数名).prototype(js) = (某类).class;(java)
    .prototype代表类
    在类级别追加的方法对所有对象都适用
    所以在写方法的使用一般用prototype,写属性的时候用this,写私有属性的时候用var
    this.sayHello=function(){alert("Hello!")};//3
    搂住的这个sayHello,可以近似的看成是一个属性。在函数外更改了句炳不会影响到其他对象。
    <script>
    function Test() {

         Test.prototype.gAlert = function() {
             alert("1");
         }
    }
    var st = new Test();
    st.gAlert();
    </script>
    }
    另外从优先级上来说,this(属性)得优先级大于.prototype
    <script>
    function Test() {
    this.gAlert = function() {alert("2")}
         Test.prototype.gAlert = function() {
             alert("1");
         }
    }
    var st = new Test();
    st.gAlert();
    </script>
    优先执行this.
    另外,this.prototype这种写法不存在。因为prototype不是属性,外国的框架之所以有this.prototype是因为在代码的某个地方定义了
    this.prototype = .......
      

  3.   

    1 在此函数外是无法访问UID,PWD这两个变量的,所以,他们就是私有变量。 
    --------------
    可以直接定义 this.UID="**"; 然后外部访问的话 class1.UID2 如果要定义这个类的字段,也就是public变量,必须在变量前加上this? 
    ------------------------
    JS中没有什么Public的说法,变量的作用域取决你定义的地方!3 定义一个public方法,也必须在方法名前加上this? 
    ------------------------
    如果要声明一个全局,那么就在最外部var 变量
    4 prototype是什么?书上面说是函数的原型,那么,这里的prototype原型具体是什么?还有,书上面说:每个函数对象都具有一个子对象prototype,即prototype表示了函数的原型,这句话该怎么理解 
    --------------
     prototype也就是函数的原型,可以对一些方法进行扩展 给你个例子
    假如:有String 这个类,下面有String.Length()来统计字符串的长度但现在有个需求给String 加一个Copy方法string.Copy()
    就用String.prototype.Copy=function(){//do something
    };
      

  4.   

    请先测试一下请用面向对象的想法重新思考javascript。。请大侠解释一下
      

  5.   

    感谢4楼和5楼,prototype的作用基本上明白了