javascript面向对象(属性和方法应注意的问题)

原型添加的属性和方法与定义的属性和方法注意的问题:

<script type="text/javascript">

        //应用原型,添加成员变量,
        //创建一个构造函数或者类
        var People = function(){};
        //创建对象,通过构造函数
        var p1 = new People();
        p1.name = "张三";
        var p2 = new People();
        p2.com = function (i,j){return i-j };
        //通过原型prototype 给People类的所有对象添加成员变量
        var pt = People.prototype;
        pt.name = "明铭";
        pt.age = 23;
        pt.com = function(i,j){return i+j};
        //通过原型prototype,给People添加方法
        
        //说明原型变量不会覆盖,对象自己添加的属性变量
        alert(p1.name);//输出张三
        alert(p2.name);//输出明铭
        alert(p2.age);
        alert(p1.age == p2.age);
        //注意,通过对象添加的方法,如果与通过原型对象添加的方法同名,则会出现对象方法覆盖原型方法
        alert(p2.com(30,20));
        //People不是静态成员,因此不能直接调用属性(输出undefind)
        alert(People.age);

    </script>



成员变量,函数调用应该注意的问题:

 <script type="text/javascript">
      //变量的定义域,所有的成员变量都相当于一个window的属性
            var a = 10;
            b = 20;
            function Hello()
            {
                alert("hello");
            }

            alert(a);
            alert(b);
            //注意,这儿是直接打印出来函数的名字,找到函数的定义,这不是调用
            alert(Hello);
            Hello();
            //通过window调用
            alert(window);
            alert(window.a);
            alert(window.b);
            alert(window.Hello);
            window.Hello();

            //在方法中,定义的属性,没有var 相当于全局变量,var c = 是局部变量
            function test()
            {
                c = 100;
                //var d = 1000;
            }
            test();
            alert("c="+c);
            //alert("d="+d);
    </script>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值