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的面向 ...
随机推荐
- 转:scrollWidth,clientWidth,offsetWidth的区别
scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大. clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变. off ...
- C# 中对于json的解析小结
1.解析之前的json格式 [{ "Name": "冯111", "PID": "130627199202283306" ...
- python学习笔记9--日志模块logging
我们在写程序的时候经常会打一些日志来帮助我们查找问题,这次学习一下logging模块,在python里面如何操作日志.介绍一下logging模块,logging模块就是python里面用来操作日志的模 ...
- SAP笔记---非-现存任务/请求XXX上的请求锁定
不管在SAP中的哪个系统在点击修改程序时都有可能出现以下图中的报错: 已找到解决办法,步骤如下: 1,se11中查看tlock表找到以上提到的请求号记录: 2,进入se16n,输入请求号,在事务代码输 ...
- tomcat杂记
组成 Server –> Service –> Connector & Container( Engine –> Host –> Context( Wrapper( S ...
- 使用sqlmap中tamper脚本绕过waf
使用sqlmap中tamper脚本绕过waf 刘海哥 · 2015/02/02 11:26 0x00 背景 sqlmap中的tamper脚本来对目标进行更高效的攻击. 由于乌云知识库少了sqlmap- ...
- python - class propert应用
propert应用 #方式一: # class Student(object): # def __init__(self,name,sc): # self.name = name # self.sc ...
- 论文笔记系列-Neural Architecture Search With Reinforcement Learning
摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...
- 在使用kvc进行赋值的时候,有时候会遇到null值,这个时候我们使用kvc会报错
在使用kvc进行赋值的时候,有时候会遇到null值,这个时候我们使用kvc会报错,如何解决 控制器代码如下: // // ViewController.m // 02-模型中的赋值 // // Cre ...
- ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(3)- 异常
1.前言 本文介绍异常相关内容,包括异常类型,异常进入,异常返回,异常层次结构,异常的路由等 2. RESET ARMV8体系结构支持两种类型的RESET Cold reset:Reset PE所有 ...