javascript面向对象方式,调用属性和方法
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面向对象方式,调用属性和方法的更多相关文章
- JavaScript面向对象之创建类和方法
一,js使用函数来定义类而不是像别的编程语言一样通过关键字class来定义,通过类本身(this)和原型(prototype)来完成面对对象编程! 示例1, //创建ElectronicSignatu ...
- JavaScript 节点操作Dom属性和方法(转)
JavaScript 节点操作Dom属性和方法 一些常用的dom属性和方法,列出来作为手册用. 属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储 ...
- ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例
ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例 2012年04月27日 16:59:16 奋斗的小壁虎 阅读数:4500 ...
- 【JavaScript】浅析JavaScript对象如何添加属性和方法
向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...
- Javascript常用对象的属性和方法
javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算 ...
- JavaScript文件中调用AngularJS内部方法或改变$scope变量
需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...
- JavaScript中Number常用属性和方法
title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...
- 模拟axios的创建[ 实现调用axios()自身发送请求或调用属性的方法发送请求axios.request() ]
1.axios 函数对象(可以作为函数使用去发送请求,也可以作为对象调用request方法发送请求) ❀ 一开始axios是一个函数,但是后续又给它添加上了一些属性[ 方法属性] ■ 举例子(axio ...
- JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链
前 言 JRedu 上一篇博客中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题.本篇博客,我们继续来学习JS的面向对象.来深入理解一下JavaScript OOP中的成员属性/方 ...
随机推荐
- ls -F一种非常有用的ls格式
ls -F一种非常有用的ls格式 tz/y/yupeng > ls -F#q# News/ doc/ images/ mbox ...
- IPAdr.exe注册机[PY]
算法还原: a =raw_input('enter the string: \n') num =len(a) All_c=0 for i in range(0,num,1): b =ord(a[i]) ...
- [CareerCup] 13.2 Compare Hash Table and STL Map 比较哈希表和Map
13.2 Compare and contrast a hash table and an STL map. How is a hash table implemented? If the numbe ...
- GDB深入研究——20135308芦畅
GDB深入研究 一.GDB代码调试 (一)GDB调试实例 在终端中编译一个示例C语言小程序,保存到文件 gdb-sample.c 中,用GCC编译之 #include <stdio.h> ...
- gdb学习
gdb学习 [参考资料] http://www.cnblogs.com/jiu0821/p/4483804.html 程序的运行状态有"运行"."暂停".&qu ...
- iOS——关于创建真机调试证书(发布证书,测试(调试)证书,推送调试证书)、iOS开发者账号申请 请用开发者账号去iTunes connect 查看状态
- 利用JS跨域做一个简单的页面访问统计系统
其实在大部分互联网web产品中,我们通常会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便可以在这些统计系统中看到自己网站页面具体的访问情况.但是有些时候,由于一些特殊情况,我们 ...
- HoloLens开发手记 - Unity之World Anchor空间锚
World Anchor空间锚提供了一种能够将物体保留在特定位置和旋转状态上的方法.这保证了全息对象的稳定性,同时提供了后续在真实世界中保持全息对象位置的能力.简单地说,你可以为全息物体来添加空间锚点 ...
- 年前辞职-WCF入门学习(1,2)
前言 周一的时候辞职了,离开了从12年毕业后8月份开始一直到现在的公司. 辞职之后当然是玩.玩了若干天的游戏,真的是没日没夜啊,但是玩的太坑,怒删游戏.话说上次玩还是在14年7月份.下次还是过年回家再 ...
- 微信内置浏览器的JsAPI(WeixinJSBridge续)[转载]
原文地址: http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript ...