一、引言

  前面我们介绍了有关于内置对象的很多很多的API,讲道理得话如果想彻底的掌握那一定要经过一定的代码段沉淀下。大家可以想象一下,既然在程序中有很多的内置对象供我们使用,那我们是不是也可以定义一些对象作为我们自己的特用对象呢?答案肯定是可以的。

二、导入

  在工作中根据内容需求不同我们可以定义不同的对象来实现我们自己想要的功能。

三、重点内容

  ① 自定义对象的概念:

    在工作当中,有时我们需要多次的定义不同事物的不同属性。这个时候为了方便我们就有了对象把他们封装起来。那么对象是什么呢?。它是一个无序数组的集合,你可以把它当做是你的旅行包,里面装着你的衣服、钱包、手机等的物品。对象可以帮我们封装一些数据,方便我们在程序中的传输或者是控制。我们把在对象中封装的内容就把这些叫做是属性或者方法。

    属性:事物具有的特征

    方法:事物具有的行为

  ② 自定义对象的创建方式:

    1.创建自定义对象:

  var student = new Object();  //创建了一个学生的空对象
// 属性(特征,姓名,性别,年龄,手机号,家庭)和方法(打招呼,游泳,打球)
student.name = "张三";
student.sex = "男";
student.age = ;
student.sayHi = function (){
console.log("我叫"+student.name+",我今年"+student.age+",我是"+student.sex+"生");
};

     虽然这样做是没有错误的,但是如果说是要储存一个班的人的信息呢?我们需要一个方式批量创建。

    2. 利用函数批量的创建对象

function  createStudent(name,age,sex){
var student = new Object();// 用构造函数的方式创建了一个空对象并返回
student.name =name;
student.age = age;
student.sex= sex;
student.sayHi= function(){
console.log("我叫"+student.name+",我今年"+student.age+",我是"+student.sex+"生");
};
return student;//将这个对象返回
} var zs = createStudent("张三",,"男");
zs.sayHi(); var ls = createStudent("李四",,"男");
ls.sayHi();
var zs1 = createStudent("赵四",,"男");
zs1.sayHi();

      这样子我们就可以批量的穿件对象了,但是在上面的代码中我们发现 var student = new Object();// 用构造函数的方式创建了一个空对象并返回   return student;//将这个对象返回   这两句是不必须的,所以我们用下面的方法。

     3.构造函数创建对象

function Student(name,sex,age){  //首字母大写,标明是一个函数,但是是构造函数,用来创建对象
//var this = new Object();
this.name = name; // this指代当前创建出来的出来
this.age=age;
this.sex = sex;
this.sayHi = function(){
console.log("我叫"+this.name+",我今年"+this.age+",我是"+this.sex+"生");
};
//return student();
// return this;
} var ls = new Student("李四","男",); // 构造函数可以创建对象并返回
ls.sayHi(); var xm = new Student("小明","男",);
xm.sayHi(); //谁调用,this就指代谁,始终指向当前对象

    在这里面我们需要关注两个关注的关键字new与this

      new在构造函数的时候做了以下的4件事

        a ) 创建一个空的对象。   

        b )将this指针指向这个对象。

        c )将构造函数里面的代码,给当前空对象this设置属性和方法。

        d )将this这个当前这个对象返回。

      this

       在JS中,通过构造函数创建出来的对象 ,在调用方法的时候,this指代当前对象。

       谁调用方法,this指代谁,都是指代当前对象。

    我知道关于这两个关键字肯定还有更深层的解释,不过这是基础先掌握后面再深入。

    4.对象字面量创建对象

var o = {    // 对象字面量
name:"张三",
age:,
address:"上海市",
sex:"男",
sayHi:function(){
console.log("大家好,我的名字是:"+ this.name+",我的年龄是:"+ this.age+",我是"+ this.sex+"生");
}
};
o.sayHi();

四、总结

  今天的内容有些多,需要记忆的内容要求很大。希望大家可以多多记忆。

												

JavaScript 基础第六天的更多相关文章

  1. JavaScript基础

    JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...

  2. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  3. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  4. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  5. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  6. Javascript基础回顾 之(二) 作用域

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  7. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  8. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

  9. javascript基础01

    javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...

随机推荐

  1. database link远程链接数据库

    --授权创建.删除dblink GRANT CREATE [PUBLIC] DATABASE LINK,DROP [PUBLIC] DATABASE LINK TO canco; --查看数据库GLO ...

  2. flash中字体兼容性

    非谷歌浏览器设置字体font时需设置为该字体的(英文名字)或者(中文名字+可读性消除锯齿), 谷歌浏览器设置字体font时需设置为该字体的(中文名字) 总结:静态文本一般通过选择可读性消除锯齿来能实现 ...

  3. Eclipse:Dubug快捷键

    Debug快捷键 F5单步调试进入函数内部.   F6单步调试不进入函数内部,如果装了金山词霸2006则要把"取词开关"的快捷键改成其他的.   F7由函数内部返回到调用处.   ...

  4. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

  5. ArcEngine:The XY domain on the spatial reference is not set or invalid错误

    在创建数据集的时候,提示The XY domain on the spatial reference is not set or invalid错误. 原因:未设置空间参考(ISpatialRefer ...

  6. Ueditor 编译发布后无法使用上传图片、附件等功能

    Ueditor 发布后上传到服务器会出现无法使用上传功能,在本地源代码模式下上传功能正常,这是因为在网站发布期间把 net/Uploader.cs 给编译了,发布后的代码不包含Uploader.cs故 ...

  7. maven学习(5)-maven中常见错误

    maven报错非法字符:\65279 错误 开发中一个项目很早就报这个错,maven报错非法字符:\ 错误, 开发过程中偶尔会遇到,今天终于下决心要解决这个问题 编译java 文件的时候,有些java ...

  8. KVC

    KVC可以修改私有的属性,估计也是底层 操作的.

  9. XE3随笔17:实例 - 模拟 Google 搜索

    本例测试效果图: 代码文件: unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics ...

  10. html table冻结列

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...