根据函数中声明的方式,函数中变量有3种:

1)        局部变量:在函数中以普通方式声明的变量,包括以var或不加任何前缀声明的变量。

2)        实例属性:在函数中以this前缀修饰的变量

3)        类属性:在函数中以函数名前缀修饰的变量

实例属性和类属性则是面向对象的概念:实例属性是属于单个对象的,因此必须通过对象来访问;类属性是属于整个类(也就是函数)本身的,因此必须通过类(也就是函数)来访问。

同一个类(也就是函数)只占用一块内存,因此每个属性将只占用一块内存;同一个类(也就是函数)每创建一个对象,系统将会为该对象的实例属性分配一块内存。看下面的代码。

<script type="text/javascript">// 定义函数Personfunction Person(national, age){// this修饰的变量为实例属性this.age = age;// Person修饰的变量为类属性Person.national =national;// 以var定义的变量为局部变量var bb = 0;}// 创建Person的第一个对象p1。国籍为中国,年纪为29var p1 = new Person('中国' , 29);document.writeln("创建第一个Person对象<br />");// 输出第一个对象p1的年纪和国籍document.writeln("p1的age属性为" + p1.age + "<br />");document.writeln("p1的national属性为" + p1.national + "<br />");document.writeln("通过Person访问静态national属性为" + Person.national + "<br />");// 输出bb属性document.writeln("p1的bb属性为" + p1.bb + "<br /><hr />");// 创建Person的第二个对象p2var p2 = new Person('美国' , 32);document.writeln("创建两个Person对象之后<br />"); // 再次输出p1的年纪和国籍document.writeln("p1的age属性为" + p1.age + "<br />");document.writeln("p1的national属性为" + p1.national + "<br />");// 输出p2的年纪和国籍document.writeln("p2的age属性为" + p2.age + "<br />");document.writeln("p2的national属性为" + p2.national + "<br />");// 通过类名访问类属性document.writeln("通过Person访问静态national属性为"+ Person.national + "<br />");
</script>

执行的结果:

JavaScript之函数实例属性和类属性相关推荐

  1. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  2. python类属性和实例属性_Python 类属性与实例属性,类对象与实例对象用法分析...

    本文实例讲述了Python 类属性与实例属性,类对象与实例对象用法.分享给大家供大家参考,具体如下: demo.py(类属性,所有实例对象共用类属性): # 定义工具类 继承object是为了兼容py ...

  3. python面向对象编程之实例属性和类属性

    廖雪峰python教程 面向对象编程之实例属性和类属性 练习 为了统计学生人数,可以给Student类增加一个类属性,每创建一个实例,该属性自动增加: # -*- coding: utf-8 -*- ...

  4. python实例属性与类属性_Python 面向对象编程:类的创建与初始化、实例属性与方法、类属性与方法...

    1. 类的创建并实例化 类的定义:在Python中,类通过class 关键字定义.按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的.下面是一个 ...

  5. python类中的属性分为类属性和实例属性两种_python从入门到大神---1、初始化实例、类属性、方法...

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  6. Python 实例属性和类属性

    由于Python是动态语言,根据类创建的实例可以任意绑定属性. 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(object):def __init__(sel ...

  7. Python基础-不要对实例属性和类属性使用相同的名字

    示例 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 不要对实例属性和类属性使用相同的名字class Duck(object):name = &quo ...

  8. python中属性和类级变量_六、Python类变量和实例变量(类属性和实例属性)

    我们知道,无论是在类中定义的属性还是方法,在类的外部,都无法直接调用它们,因此,我们完全可以把类看做是一个独立的作用域(称为类命名空间),则类属性其实就是定义在类命名空间内的变量(类方法其实就是定义的 ...

  9. python的实例属性_python 实例属性和类属性

    如何在一个类中定义一些常量,每个对象都可以方便访问这些常量而不用重新构造? 第一个问题,在 Python 的类里,你只需要和函数并列地声明并赋值,就可以实现这一点, 例如这段代码中的 WELCOME_ ...

  10. python类中的属性分为类属性和实例属性两种_python中类和实例如何绑定属性与方法示例详解...

    前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Python是动态语言, ...

最新文章

  1. select count(*) from temp 与select count(1) from temp有什么区别
  2. 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach
  3. SpringSecurity快速入门
  4. vs2008调试c#网页时出现“加载配置文件时出错: 未能映射路径'/' 错误 .
  5. 机房收费系统之处理流程图与DFD图
  6. Matlab滤波器的verilog实现,FIR滤波器的Verilog实现
  7. 14英寸电脑长宽多少_华为MateBook 14 2020款 14英寸轻薄笔记本王者升级
  8. 做互联网的基因,互联网营销
  9. P. Hamilton / Quantitative Investigation of QRS Detection Rules Using the MIT/BIH Arrhythmia Databa
  10. SQL Server 中的嵌套事务与@@TranCount(转)
  11. OpnCV_(HoughCircles to find circles)霍夫变换检测圆形
  12. Zedgraph 总结
  13. Caffe 框架理解
  14. 如何更改Dropbox的同步文件夹?
  15. leetcode_1370. 上升下降字符串
  16. 再次出发!FaceBook 开源“一站式服务“时序利器 Kats !
  17. python有哪些细节描写_细节描写训练,莫失良机
  18. 训练网络时,loss损失的问题
  19. 单点登录cas常见问题(九) - android app怎么接入cas单点登录系统?
  20. 根据概率密度函数生成随机数的代码

热门文章

  1. 关于HTML5中hash部分API在历史管理,选项卡自动跳转中的一点使用
  2. ScaleAnimation缩放动画Demo
  3. 几篇QEMU/KVM代码分析文章
  4. 23种设计模式(2):工厂方法模式
  5. Ilist 和list的区别归纳总结
  6. matlab各种出错,matlab常见错误命令汇总
  7. A - 1 CodeForces - 500A
  8. zabbix详解(一)——zabbix基本概念
  9. linux下常用压缩(compress ,gz ,bzip2,xf)命令和打包命令(tar,zip)详解
  10. selenium 自动化web测试