1、定义一个Person类,其中的属性和方法如果想对外开放,需要使用this,如:

var Person=function(name,age,sex){

  var psex='Boy';

  if(sex){

    psex=sex;

  }

  this.name=name;

  this.age=age;

  this.speak=function(){

    console.log('My name is '+this.name+';I am '+this.age+' years old'+';I am a '+psex);

  }

}

2、创建Person对象调用内部公开属性和方法,如果调用了非公开的属性,结果显示undefined,如果调用非公开的方法,会报错not a function。

案例:var p=new Person('Tom',23);p.speak();//My name is Tom;I am 23 years old;I am a Boy

     var pp=new Person('Lily',21,'Girl');pp.speak();//My name is Lily;I am 21 years old;I am a Girl

每次new都会独立开辟一个空间给对象

3、扩展Person类的对象属性和实例方法(使用类的prototype扩展)

  扩展对象属性:Person.prototype.hobby='play basketball';//设置默认属性值

         p.hobby;//play basketball

         pp.hobby;//play basketball

           pp.hobby='play badminton';//重新设置pp对象的hobby属性值

         p.hobby;//play basketball

         pp.hobby;//play badminton

  扩展对象方法:Person.prototype.run=function(){console.log('I am running');}

         p.run();//I am running

         pp.run();//I am running

如果用创建出的对象p或pp来扩展属性和方法,则只能由该对象调用自己的属性和方法。比如p.walk=function(){console.log('walk')};p.walk();//walk;如果使用pp调用报错“pp.walk is not a function”。

4、扩展Person类的静态属性和静态方法(直接使用类名扩展)

   扩展静态属性:Person.test='test static attribute';Person.test;//test static attribute如果用对象调用该test属性,则输出undefined

   扩展静态方法:Person.eat=function(){console.log('I am eating an apple')};Person.eat();//I am eating an apple如果用对象调用报错 is not a function

javascript面向对象方式,调用属性和方法的更多相关文章

  1. JavaScript面向对象之创建类和方法

    一,js使用函数来定义类而不是像别的编程语言一样通过关键字class来定义,通过类本身(this)和原型(prototype)来完成面对对象编程! 示例1, //创建ElectronicSignatu ...

  2. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  3. ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例

    ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例 2012年04月27日 16:59:16 奋斗的小壁虎 阅读数:4500   ...

  4. 【JavaScript】浅析JavaScript对象如何添加属性和方法

    向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...

  5. Javascript常用对象的属性和方法

    javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算 ...

  6. JavaScript文件中调用AngularJS内部方法或改变$scope变量

    需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...

  7. JavaScript中Number常用属性和方法

    title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...

  8. 模拟axios的创建[ 实现调用axios()自身发送请求或调用属性的方法发送请求axios.request() ]

    1.axios 函数对象(可以作为函数使用去发送请求,也可以作为对象调用request方法发送请求) ❀ 一开始axios是一个函数,但是后续又给它添加上了一些属性[ 方法属性] ■ 举例子(axio ...

  9. JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链

      前  言 JRedu 上一篇博客中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题.本篇博客,我们继续来学习JS的面向对象.来深入理解一下JavaScript OOP中的成员属性/方 ...

随机推荐

  1. zabbix架构

    监控系统: 数据的采集---存储---展示和分析---报警 snmp           cacti:rrd agent           nagios:不保存数据,mysql icmp/ssh   ...

  2. The specified LINQ expression contains references to queries that are associated with different contexts

    今天在改写架构的时候,遇到这么个错误.当时单从字面意思,看上去错误是由join的两个不同的表来源不一致引起的. 其中的videoResult和deerpenList均来自与同一个edmx文件,所以两个 ...

  3. JS案例之8——从一个数组中随机取数

    近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...

  4. node-webkit 写桌面系统

    [1.使用nodejs] 和很多人一样,百度了很久很久,没看到有恰到点的解释的,当时我已经怀疑到是配置出来的,而非引js,最后确实啥都不用引 实际关键在package.json加入设置"no ...

  5. Android调用系统相册和拍照的Demo

    最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的.确实是,我记得一个月前,我一同学也遇到了这样的问题,在低版本的系统中没问题 ...

  6. HTML5+NodeJs实现WebSocket即时通讯

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近都在学习HTML5,做canvas游戏之类的,发现HTML5中除了canvas这个强大的工具外,还有WebSocket也很值得注意.可 ...

  7. 三维数组——与 宝玉QQ群讨论交流之二

    宝玉 12:27:35 这几天看了大部分大家交的作业,发现一个主要问题还是卡在对三维数组的理解上,之前把三维数组类比成三维空间可能会造成误导 宝玉 12:27:45 其实鞠老师解释的很好: 三维数组 ...

  8. Red Hat Linux9命令行--修改补充中

    1.使用rpm工具安装应用软件:rpm   [选项]  [软件包名] 常用的参数及含义如下图所示: 2.编译安装应用软件 (1).tar.gz和.tgz使用如下的命令: [root@myhost ro ...

  9. web服务器

    1.打破信息孤岛,实现信息的集成 2.配置文件  web.xml          定义自己的服务器应该要哪些功能! 3.tomcat 是一个servlet容器,一个web服务器. 部署:将web应用 ...

  10. Ibatis的类型处理器TypeHandler解析

    Ibatis允许用户像在hibernate中一样定义自己的类型,但是,用户自定义类型需要与数据库中的字段类型进行对应.它的处理方法是允许我们扩展TypeHandler.Ibatis框架在处理该数据类型 ...