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的面向 ...
随机推荐
- js变量浅谈
js变量是除了this以外最让人恶心的东西了,还因为烂语法造成各种各样奇奇怪怪的事情发生,下面让我们来谈谈都有什么奇怪的事: 1.用var与不用var function test(){ a = 123 ...
- 转:scrollWidth,clientWidth,offsetWidth的区别
scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大. clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变. off ...
- Idea默认的全局设置,如Maven等
每次使用IDEA打开一个新的项目,maven都需要重新配置,非常不开心,所以需要有个默认全局配置,打破不开心 配置完就OK了 公众号 欢迎关注我的公众号“码上开发”,每天分享最新技术资讯.最优原创文章 ...
- bootstrap3 input 验证样式【转】
feedback <form role="form"> <div class="form-group has-success has-feedback& ...
- python遍历数组获取下标
代码 通过枚举实现 a = [,,,,,] for i,j in enumerate(a): print i,j 结果
- Idea下安装Lombok插件
参照:http://www.cnblogs.com/holten/p/5729226.html https://yq.aliyun.com/articles/59972 lombok是一个可以通过简单 ...
- 出售爱奇艺 tx好莱坞 优酷 乐视 芒果 搜狐 等一个月会员激活码
出售爱奇艺 tx好莱坞 优酷 乐视 芒果 搜狐 等一个月会员激活码 进群价格有优惠 QQ群:569333649
- linux 更改文件夹所有者
更改“tp5”文件的所有者为”www” chown -R tp5/ www 修改目录及其子目录的用户组为“www” chgrp -R www tp5 同时更改文件或目录的所有者和用户组 chown - ...
- 日历控件QCalendarWidget
样式:
- 【金色】种瓜得瓜,种豆得豆 Gym - 102072H (线段树)
题目链接:https://cn.vjudge.net/problem/Gym-102072H 题目大意:中文题目 具体思路:通过两棵线段树来维护,第一棵线段树来维护当前坐标的点的日增长速度(默认每一年 ...