JavaScript基础-面向对象编程<2>
2.动态添加,修改和删除对象属性和方法
例如:用类Object()创建一个空对象user,然后修改其行为。
(1) 添加属性
var user=new Object(); //创建一个没有属性和方法的空对象
user.name="jack"; //添加属性name
user.age=21; //添加属性age
user.sex="male"
若输出结果,可用alert(user.name)等语句进行显示。
(2)添加方法
针对前面的空对象user,添加一个方法 alert():
user.alert=function(){
alert("my name is:"+this.name);
}
调用:user.alert(); //可显示其名字为jack
(3)修改属性和方法
修改就是用新属性替换旧属性。
例如:
user.name="tom";
user.alert=function(){
alert("hello,"+this.name); //这时的方法中name属性已经已经替换为tom
}
若用弹出对话框显示其内容,user.alert()值为 "hello,tom"。
(4)删除属性和方法
其实,删除属性或方法就是将其值定义为undefined,即
user.name=undefined;
user.alert=undefined;
3.使用大括号语法创建无类型对象
其语法为:
{
property1:statement,
property2:statement,
.......,
propertyN:statementN }
这里通过使用大括号,使多个属性或方法成为一个组,实现对象的定义。
示例 :使用大括号语法创建一对象
<script language="javascript" type="text/javascript">
var obj={ }; //定义一个空对象, 等同于 var obj=new Object();
var user={
name:"jack", //定义name属性并赋初值
favoriteColor:["red","green","black"], //定义颜色数组
hello:function(){ //定义方法
alert("hello"+this.name);
},
sex:"male"
}
user.hello(); //调用方法 </script>
4.prototype对象
每个函数其实也是一个对象,它们对应的类是 function. 它们具有特殊的身份,每个函数对象都具有一个子对象prototype,即prototype表示了该函数的原型。而函数也是
类,prototype就是表示了一个类的成员集合。
既然 protoype是一个对象,也可以动态地对其属性和方法进行修改
例如:
function class1(){
// 空函数
} class1.protoype.method=function(){ // 增加方法 alert("it's a text method");
}
var obj1 =new class1();
obj1.method; //调用对象方法
JavaScript基础-面向对象编程<2>的更多相关文章
- JavaScript基础-面向对象编程<1>
1.1 函数与对象 1.定义函数的方式定义类 定义类的方法: function class1(){ //类成员的定义及构造函数部分 } class1既是一个函数,也是一个类. 使用 new 操作符获 ...
- JavaScript的面向对象编程(OOP)(一)——类
在学习JavaScript面向对象的编程之前,需要知道,并了解面向对象的一些基本的常识.初学者中大多数都以为面向对象中,面向对象的编程是很重要和占据很大一部分精力.笔者在之前也是认为OOP是面向对象的 ...
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础
第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...
- javascript的面向对象编程
面象对象编程技术的核心理念:封装.继承.多态:在一些主流的高级编程语言中,比如:C#,VB.NET,JAVA,PHP等都是很容易实现的,而如果要在javascript中实现面象对象编程,可就不那么直接 ...
- python基础-面向对象编程
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...
- Javascript 进阶 面向对象编程 继承的一个样例
Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承.这篇使用一个样例来展示js怎样面向对象编程.以及怎样基于类实现继承. 1. ...
- Javascript 进阶 面向对象编程 继承的一个例子
Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承,这篇使用一个例子来展示js如何面向对象编程,以及如何基于类实现继承. 1. ...
- Python基础 — 面向对象编程基础
目录 1. 面向对象编程基础 2. 定义类和创建对象 3. init() 方法 4. 魔法方法 5. 访问可见性问题 5. 练习 1. 面向对象编程基础 把一组数据结构和处理它们的方法组成对象(obj ...
随机推荐
- .NET通用基本权限系统
DEMO下载地址: http://download.csdn.net/detail/shecixiong/5372895 一.开发技术:B/S(.NET C# ) 1.Windows XP以上 (支援 ...
- jquery如何自定义插件(扩展实例/静态方法)
1.jquery插件的种类: 1).封装对象方法的插件(相当于实例方法) (使用 $.fn.extend({"方法名":function(参数){//方法体} }) ) 2).封装 ...
- PowerDesigner概念数据模型 CDM
目标:本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求:1)能够比较真实地模拟现实世界2 ...
- Java JNI调用c语言的dll测试
最近复习C语言和java语言(10年没用了,温习一下),用JNI调用C语言的dll测试,以前没做过,在网上找了很多,总结如下: 环境:windows 10(64位) + JDK(32位,版本1.7.0 ...
- 剑指OFFER之栈的压入、弹出序列(九度OJ1366)
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...
- cocos2d-x 基本数学
转自:http://cjhworld.blog.163.com/blog/static/207078036201331510141222/ 数学函数: ccp(x, y); // 以坐标x,y创建一个 ...
- BZOJ 1028: [JSOI2007]麻将 暴力
1028: [JSOI2007]麻将 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/prob ...
- 图像的稀疏表示——ScSPM和LLC的总结
前言 上一篇提到了SPM.这篇博客打算把ScSPM和LLC一起总结了.ScSPM和LLC其实都是对SPM的改进.这些技术,都是对特征的描述.它们既没有创造出新的特征(都是提取SIFT,HOG, RGB ...
- UvaLive 6667 Longest Chain (分治求三元组LIS&树状数组)
题目链接: here 题意: 和hdu4742类似.差别就是一部分三元组是直接给出的.另一部分是用他给的那个函数生成的.还有就是这里的大于是严格的大于a>b必须ax>bx,ay>by ...
- android自动填充短信验证码
自动拦截短信实际上就是在系统注册一个BroadcastReceiver,然后通过设置拦截短信的: filter.addAction("android.provider.Telephony.S ...