有前辈说过,在JavaScript中,一切皆对象。由此可见,作为JavaScript的核心之一,对象是有多么重要。虽然今天走亲戚有点累,但还是得写写这个对象,免得吃几天好的,就又忘光了。

1.创建对象

  通过内置对象创建:

var obj1 = new Object();
typeof obj1; // object var obj2 = new Array();
typeof obj2; // object var obj3 = new String();
typeof obj3; // object

  通过字面量创建:

var obj = {
name: '非鱼',
age: 22,
msg: function() {
console.log('我叫' + this.name + ',今年' + this.age + '岁。');
}
};
obj.msg(); // 我叫非鱼,今年22岁。

  通过函数创建:

  对于刚接触JavaScript的朋友来讲,前面两种方法可能非常熟悉了,但是对于这第三种可能有些陌生。我一直觉得对于一个问题,我们要知其然,也要知其所以然,所以虽然我也没怎么用过,但是还是去查了一下原因。

  其实原因很简单,通过函数来创建对象,就是为了复用,以及减少代码的大量重复,还是举个例子。

  我们需要创建小明和小红两个对象,如果使用字面量方式创建,会是下面这样:

var xiaoming = {
name: '小明',
age: 22,
hello: function() {
console.log('大家好,我叫:' + this.name);
}
};
xiaoming.hello(); var xiaohong= {
name: '小红',
age: 20,
hello: function() {
console.log('大家好,我叫:' + this.name);
}
};
xiaohong.hello();

  从上面就能看出来,两个对象除了值不一样外,其余都一样,所以我们为了避免重复,就需要用到通过函数的方式。还是接着上面的小明小红:

function Person(name,age){
this.name = name;
this.age = age;
this.hello = function() {
console.log('大家好,我叫:' + this.name);
}
}
var xiaoming = new Person('小明',22);
xiaoming.hello(); var xiaohong = new Person('小红',20);
xiaohong.hello();

  这只是一个小栗子,对于越复杂的问题,效果越是明显。

  通过函数来创建对象,有几种模式,其中涉及到原型,所以就干脆放到后面讲。

2.访问对象属性

var person = {
name: '张三',
age: 26,
gender: '男',
};
person.name; // 通过点表示法访问 var name2 = 'name';
person[name2] = '李四'; // 方括号方式访问,优点是可以通过变量访问

菜鸟快飞之JavaScript对象、原型、继承(一)的更多相关文章

  1. 菜鸟快飞之JavaScript对象、原型、继承(三)

    正文之前需要声明的一点是,菜鸟系列博文全是基于ES5的,不考虑ES6甚至更高版本. 继承 由于我个人不是学计算机的,所以对于很多东西只是知其然,不知其所以然.就像这个继承,刚开始学JavaScript ...

  2. 菜鸟快飞之JavaScript对象、原型、继承(二)

    上一节写了创建对象的三种方法,而其中通过函数创建对象的方式又有三种模式,分别是工厂模式.构造函数模式.原型模式.而这三种模式最常用的则是原型模式.还是上栗子: 工厂模式: function Fun1( ...

  3. 菜鸟快飞之JavaScript函数

    1.复制变量值 在说函数前,我觉得需要先说说关于变量值的复制,以便后面的理解. 复制基本类型的值: 当一个变量复制另外一个值为基本类型的变量时,两个变量可以参与任何操作而不会互相影响 var num1 ...

  4. #JavaScript对象与继承

    JavaScript对象与继承 JavaScript是我在C语言之后接触的第二门编程语言,大一暑假的时候在图书馆找了一本中国人写的JavaScript程序设计来看.那个时候在编程方面几乎还是小白,再加 ...

  5. JavaScript的原型继承

    JavaScript是一门面向对象的语言.在JavaScript中有一句很经典的话,万物皆对象.既然是面向对象的,那就有面向对象的三大特征:封装.继承.多态.这里讲的是JavaScript的继承,其他 ...

  6. JavaScript大杂烩4 - 理解JavaScript对象的继承机制

    JavaScript是单根的完全面向对象的语言 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承.而在JavaScript的 ...

  7. 关于js的对象原型继承(一)

    javascript中,对象的继承是通过原型去继承. 可以这样理解:js中的对象,包含的除了属性和方法,还有一个最基本的原型__proto__对象.这个原型__proto__指向谁,这个对象就继承谁. ...

  8. JavaScript对象的继承

    原文 简书原文:https://www.jianshu.com/p/78ce11762f39 大纲 前言 1.原型链继承 2.借用构造函数实现继承 3.组合模式继承 4.原型式继承 5.寄生式继承 6 ...

  9. JavaScript对象原型

    一.MDN上的解释(有点抽象) 基于原型的语言? JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模 ...

随机推荐

  1. Linux的学习笔记

    Linux,1991年,系统安全,良好的可移植性,多用户,多任务,良好的兼容性,良好的用户界面, 主流的是RedHat或者CentOS, CentOS 设置的网关 192.168.2.2 Window ...

  2. [DJANGO] excel十几万行数据快速导入数据库研究

    先贴原来的导入数据代码: 8 import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.setting ...

  3. 使用C# 和Consul进行分布式系统协调

    随着大数据时代的到来,分布式是解决大数据问题的一个主要手段,随着越来越多的分布式的服务,如何在分布式的系统中对这些服务做协调变成了一个很棘手的问题.今天我们就来看看如何使用C# ,利用开源对分布式服务 ...

  4. Linux3 在VMware中搭建CentOS6.5虚拟机

    前言:      本文主要是我在大家hadoop集群之前 ,需啊先安装CentOS虚拟机,记录在此,作为参考.如果能帮助到其他人,自然是更好啦. =========================== ...

  5. Html5下拉控件同时支持文本输入和下拉代码

    有时候,下拉框不能满足我们的业务需求,还需要同时支持用户输入内容,默认的select标签是不支持用户输入的,下面我说一下原生的select如何支持用户输入,代码如下: <!DOCTYPE htm ...

  6. 利用Netty构建自定义协议的通信

    在复杂的网络世界中,各种应用之间通信需要依赖各种各样的协议,比如:HTTP,Telnet,FTP,SMTP等等. 在开发过程中,有时候我们需要构建一些适应自己业务的应用层协议,Netty作为一个非常优 ...

  7. JavaScript语法

    通用变量var 强制整数parseint(): 强制小数parsefloat(): 是不是一个合法的数字isNaN(): if(判断条件) { 满足条件要执行的语句 } else{ 不满足条件要执行的 ...

  8. 解析大型.NET ERP系统 高质量.NET代码设计模式

    1 缓存 Cache 系统中大量的用到缓存设计模式,对系统登入之后不变的数据进行缓存,不从数据库中直接读取.耗费一些内存,相比从SQL Server中再次读取数据要划算得多.缓存的基本设计模式参考下面 ...

  9. ASP.NET Core中的依赖注入(3): 服务的注册与提供

    在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象.ASP.NET Core ...

  10. 计算机程序的思维逻辑 (41) - 剖析HashSet

    上节介绍了HashMap,提到了Set接口,Map接口的两个方法keySet和entrySet返回的都是Set,本节,我们来看Set接口的一个重要实现类HashSet. 与HashMap类似,字面上看 ...