javascript函数的实例属性和类属性

javascript函数的实例属性和类属性

	由于JavaScript函数不仅仅是一个函数,而且是一个类,该函数还是此类唯一的构造 器,

只要在调用函数时使用new关键字,就可返回一个Object,这个Object不是函数的返回值,
而是函数本身产生的对象。因此在JavaScript中定义的变量不仅有局部变量,还有实例属性和
类属性两种。根据函数中声明变量的方式,函数中的变量有3种。
➢局部变量:在函数中以var声明的变量。
➢实例属性:在函数中以this前缀修饰的变量。
➢类属性:在函数中以函数名前缀修饰的变量。

局部变量是只能在函数里访问的变量。实例属性和类属性则是面向对象的概念:实例属性是属于单个对象的,因此必须通过对象来访问:类属性是属于整个类(也就是函数)本身的,因此必须通过类(也就是函数)来访问。同一个类(也就是函数)只占用一块内存,因此每个类属性将只占用一块内存:同一个类(也就是函数)每创建-一个对象,系统将会为该对象的实例属性分配-块内存。 看如下代码。

function Person(national,age){
            this.age=age;
            Person.national=national;
            var bb=0;
        }
        var p1=new Person('中国',29);
        document.writeln("创建的第一个Person对象<br/>");
        document.writeln("p1的age属性为:"+p1.age+"<br/>");
        document.writeln("p1的namtional属性为:"+p1.national+"<br/>");
        document.writeln("通过Person的访问静态national属性为:"+Person.national+"<br/>");
        document.writeln("p1的bb属性为:"+p1.bb+"<br/>");

        var p2=new Person('美国',32);
        document.writeln("创建的第二个Person对象<br/>");
        document.writeln("p1的age属性为:"+p1.age+"<br/>");
        document.writeln("p1的namtional属性为:"+p1.national+"<br/>");
        document.writeln("p2的age属性为:"+p2.age+"<br/>");
        document.writeln("p2的namtional属性为:"+p2.national+"<br/>");
        document.writeln("通过Person的访问静态national属性为:"+Person.national+"<br/>");
}

age是实例属性,因此每个实例对象的age属性完全不同。而national为类属性,必须通过Person类来访问。类似于java中的静态变量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值