// 声明对象的方法 一  (通过常量直接赋值)

        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面向对象 下的更多相关文章

  1. js面向对象封装级联下拉菜单列表

    本实例开发的级联下拉菜单是根据已有json数据创建的DOM元素.点击文本框后,显示一级菜单.如果菜单中包含子菜单,菜单右侧会有指示箭头.点击菜单之后,会再显示下一级菜单,以此类推.当菜单下无子菜单时, ...

  2. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  3. JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  4. JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  5. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  6. 浅谈JS面向对象之创建对象

    hello,everybody,今天要探讨的问题是JS面向对象,其实面向对象呢呢,一般是在大型项目上会采用,不过了解它对我们理解JS语言有很大的意义. 首先什么是面向对象编程(oop),就是用对象的思 ...

  7. 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装

    接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...

  8. JS面向对象笔记二

    菜单导航,<JS面向对象笔记一>,  参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...

  9. 【JavaScript】 JS面向对象的模式与实践 (重点整治原型这个熊孩子 (/= _ =)/~┴┴ )

    参考书籍 <JavaScript高级语言程序设计>—— Nicholas C.Zakas <你不知道的JavaScript>  —— KYLE SIMPSON   在JS的面向 ...

随机推荐

  1. JavaEE学习总结(十六)— Servlet

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  2. python---RabbitMQ(4)exchange中模糊匹配topic

    和关键字相似 生产者: # coding:utf8 # __author: Administrator # date: // # /usr/bin/env python import pika con ...

  3. Linux最全vi命令

    1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...

  4. CentOS6.x下源码安装MySQL5.5

    1. 更新yum源:http://www.cnblogs.com/vurtne-lu/p/7405931.html 2. 卸载原有的mysql数据库 [root@zabbix ~]# yum -y r ...

  5. UVALive 7143 Room Assignment(组合数学+DP)

    题目链接 参考自:http://www.cnblogs.com/oyking/p/4508260.html 题意 n个人,其中有k对双胞胎.现有m间房间,每间房间有容量ci问分配房间的方案数. 分析 ...

  6. Hibernate_day02

    一.今天内容 1 实体类编写规则 2 hibernate主键生成策略 (1)native (2)uuid 3 实体类操作 (1)crud操作 (2)实体类对象状态 4 hibernate的一级缓存 5 ...

  7. DotNetBar TextBoxDropDown响应按键事件

    textBoxDropDownHelp.TextBox.KeyDown += new KeyEventHandler(textBoxDropDownHelp_KeyDown); private voi ...

  8. C# 密封类使用sealed修饰

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace @sea ...

  9. Centos 6.5 安装Python 3.7

    文档下载地址: https://files.cnblogs.com/files/flashBoxer/Centos6.5%E5%AE%89%E8%A3%85Python3.7.xml

  10. 第5月第7天 php slim

    1. <?php require 'Slim/Slim.php'; require 'DBManagement.php'; \Slim\Slim::registerAutoloader(); $ ...