js面向对象 下
// 声明对象的方法 一 (通过常量直接赋值)
var xiaoming = {//声明一个对象(直接通过一个常量xiaoming用{}赋值的方式声明)
name: '小明', //对象的一个属性 属性与属性之间用,逗号分隔。
age: 40, //对象的一个属性
sex: '男', //对象的一个属性
job: function(){//对象的一个方法
alert('小明很会演戏');
return '对象方法返回值';
}
}
alert(xiaoming.name);
// xiaoming.job();//调用小明对象的方法 结果:小明很会演戏
alert(xiaoming.job());//对象方法返回值 结果: 对象方法返回值
//调用的如果是对象的方法属性后面要加()
//声明对象的方法 二 ( 通过new Object() 声明)
var xiaoming = new Object();//另一种声明 一个对象的方法
xiaoming.name = '小明'; //此种方法用.属性 = 属性值。来表示一个 对象的属性
xiaoming.age = 40; //声明xiaoming对象的一个属性
xiaoming.sex = '男'; //声明xiaoming对象的一个属性
xiaoming.job = function(){ //声明xiaoming对象的一个方法
alert('小明很会演戏');
} alert(xiaoming.name);//调用 xiaoming 这个对象的一个属性。 结果:小明
xiaoming.job()//调用 xiaoming 这个 对象的方法 结果:小明很会演戏
//声明对象的方法 三 ( 通过 Object() 声明 省略了new)
var xiaoming = Object(); //第三种声明一个对象 xiaoming 的方式。
xiaoming.name = '小明'; //声明xiaoming对象的一个属性
xiaoming.age = 40; //声明xiaoming对象的一个属性
xiaoming.sex = '男'; //声明xiaoming对象的一个属性
xiaoming.job = function(){// 声明xiaoming 对象的一个方法(功能)
alert('小明很会演戏');
} alert(xiaoming.age); //40 调用xiaoming对象的 一个属性 结果:40
xiaoming.job(); //调用xiaoming 这个对象的 一个方法(功能) 结果:小明很会演戏
//补充 .属性 完全等价于 ['属性']
var xiaoming = Object();
xiaoming['name'] = '小明';
xiaoming['age'] = 40; //xiaoming["age"]与xiaoming.age 效果一样 都是表示 对象的属性,只不过是两种写法而已。
xiaoming['sex'] = '男'
xiaoming['job'] = function(){
alert('小明很会演戏');
} alert(xiaoming['age']);//
xiaoming['job'](); // 小明很会演戏
总结:对象(既能够存储数据,又能够存储函数)
面向对象编程示例:
/* 例子:
有一辆车60km/h,有一条路1000km,问车跑在路上,多久跑完?
*/
// 面向过程编程思想:只关心数学逻辑。
var hour = 1000 / 60;
alert(hour); //16.666666666666668
面向对象的编程思想:将生活逻辑,直接映射到我们的程序中。
1、找实体
车
属性: speed 60km/h
功能: 跑在路上
路
属性: length 1000km
让车跑在路上,跑完以后,告诉我结果。
2、分析实体的属性和功能
3、让实体之间相互作用,最终得出结果。
var car = { //声明一个 car 对象
speed: 60, //声明 car 对象的一个属性speed 速度60
run: function(road){ //声明 car 对象的一个方法(功能),能以60的数度跑在路上
return road.length / car.speed;// 方法的返回值是消耗的的时间
}
} var kuahaidaqiao = {//跨海大桥(假设路是跨海大桥)
length: 1000
} //car对象和kuahaidaqiao对象相互作用(车跑在跨海大桥上)
var hour = car.run(kuahaidaqiao);/*调用car对象的run方法作用在对象kuahaidaqiao上。 此时 car对象的 run方法 的形参 road 就等于对象 kuahaidaqiao 所
以 road.length属性就等于kuahaidaqiao.length属性*/
alert(hour);//16.666666666666668
可见这中编程方式语义化很强。
js面向对象 下的更多相关文章
- js面向对象封装级联下拉菜单列表
本实例开发的级联下拉菜单是根据已有json数据创建的DOM元素.点击文本框后,显示一级菜单.如果菜单中包含子菜单,菜单右侧会有指示箭头.点击菜单之后,会再显示下一级菜单,以此类推.当菜单下无子菜单时, ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 浅谈JS面向对象之创建对象
hello,everybody,今天要探讨的问题是JS面向对象,其实面向对象呢呢,一般是在大型项目上会采用,不过了解它对我们理解JS语言有很大的意义. 首先什么是面向对象编程(oop),就是用对象的思 ...
- 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...
- JS面向对象笔记二
菜单导航,<JS面向对象笔记一>, 参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...
- 【JavaScript】 JS面向对象的模式与实践 (重点整治原型这个熊孩子 (/= _ =)/~┴┴ )
参考书籍 <JavaScript高级语言程序设计>—— Nicholas C.Zakas <你不知道的JavaScript> —— KYLE SIMPSON 在JS的面向 ...
随机推荐
- P2422 良好的感觉
P2422 良好的感觉 给定一段序列, 其中元素 \(0 \leq a_{i} \leq 100000\) 定义一段子段 \([L, R]\) 的舒适值为 \(\min_{L \leq i \leq ...
- jedis实现操纵redis的常用api及使用场景
简单记录一下,和描述一下常用的业务场景.好记性不如烂笔头. pom.xml <!--整合redis--> <dependency> <groupId>redis.c ...
- POJ - 2031 Building a Space Station(计算几何+最小生成树)
http://poj.org/problem?id=2031 题意 给出三维坐标系下的n个球体,求把它们联通的最小代价. 分析 最小生成树加上一点计算几何.建图,若两球体原本有接触,则边权为0:否则边 ...
- C# 实现Bezier曲线(vs2008)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 支付宝app支付流程
- 工控安全入门之Modbus(转载)
工控安全这个领域比较封闭,公开的资料很少.我在读<Hacking Exposed Industrial Control Systems>,一本16年的书,选了的部分章节进行翻译,以其抛砖引 ...
- luogu P1641 [SCOI2010]生成字符串
传送门 代码极短 \(O(n^2)\)dp是设\(f_{i,j,k}\)表示前\(i\)位,放了\(j\)个1,后面还可以接着放\(k\)个0的方案,转移的话,如果放0,\(k\)就要减1,反之放了1 ...
- python线程,pipe管道通信原理
Pipe管道: * 管道实例化后会产生两个通道,分别交给两个进程* 通过send和recv来交互数据,这是一个双向的管道,child和parent可以互相收发 from multiprocessing ...
- tidb 架构 ~Tidb学习系列(2)
一 简介:咱们今天来学习导入数据篇 二 导入数据测试 1 工具 mysqldumper loader 2 下载tidb企业版工具 wget http://download.ping ...
- Java的三种代理模式:静态代理/JDK动态代理/Cglib动态代理
1.静态代理:需要定义接口或者父类,目标对象与代理对象均实现同一接口或继承同一父类. 2.JDK动态代理:需要目标对象实现一个接口,通过动态反射的机制,生成代理对象,实现同一个接口 3.Cglib动态 ...