菜鸟快飞之JavaScript对象、原型、继承(一)
有前辈说过,在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对象、原型、继承(一)的更多相关文章
- 菜鸟快飞之JavaScript对象、原型、继承(三)
正文之前需要声明的一点是,菜鸟系列博文全是基于ES5的,不考虑ES6甚至更高版本. 继承 由于我个人不是学计算机的,所以对于很多东西只是知其然,不知其所以然.就像这个继承,刚开始学JavaScript ...
- 菜鸟快飞之JavaScript对象、原型、继承(二)
上一节写了创建对象的三种方法,而其中通过函数创建对象的方式又有三种模式,分别是工厂模式.构造函数模式.原型模式.而这三种模式最常用的则是原型模式.还是上栗子: 工厂模式: function Fun1( ...
- 菜鸟快飞之JavaScript函数
1.复制变量值 在说函数前,我觉得需要先说说关于变量值的复制,以便后面的理解. 复制基本类型的值: 当一个变量复制另外一个值为基本类型的变量时,两个变量可以参与任何操作而不会互相影响 var num1 ...
- #JavaScript对象与继承
JavaScript对象与继承 JavaScript是我在C语言之后接触的第二门编程语言,大一暑假的时候在图书馆找了一本中国人写的JavaScript程序设计来看.那个时候在编程方面几乎还是小白,再加 ...
- JavaScript的原型继承
JavaScript是一门面向对象的语言.在JavaScript中有一句很经典的话,万物皆对象.既然是面向对象的,那就有面向对象的三大特征:封装.继承.多态.这里讲的是JavaScript的继承,其他 ...
- JavaScript大杂烩4 - 理解JavaScript对象的继承机制
JavaScript是单根的完全面向对象的语言 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承.而在JavaScript的 ...
- 关于js的对象原型继承(一)
javascript中,对象的继承是通过原型去继承. 可以这样理解:js中的对象,包含的除了属性和方法,还有一个最基本的原型__proto__对象.这个原型__proto__指向谁,这个对象就继承谁. ...
- JavaScript对象的继承
原文 简书原文:https://www.jianshu.com/p/78ce11762f39 大纲 前言 1.原型链继承 2.借用构造函数实现继承 3.组合模式继承 4.原型式继承 5.寄生式继承 6 ...
- JavaScript对象原型
一.MDN上的解释(有点抽象) 基于原型的语言? JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模 ...
随机推荐
- Android开发学习—— 创建项目时,不是继承activity,而是继承ActionBarActivity
对于我们新建android项目时, 会 继承ActionBarActivity. 我们在新建项目时, 最小需求的sdk 选择 4.0以上版本.这样 新建的android项目就是继承activity了!
- 转: 解决Github访问超慢问题
转自:http://zengrong.net/post/2092.htm 解决Github访问超慢问题 Github is so slowly. 这段时间访问 github 都非常慢,google了一 ...
- ramdisk plus v11.5安装内存虚拟硬盘
ramdisk plus v11.5.桌面版操作及应用图解说明 一.ramdisk plus程序安装方法: 1.先安装英文原版软件(RamDisk-desktop.exe桌面版),安装路径不要更改,安 ...
- MzBlog分析
早上衣明志 在QQ群里说他的博客开源了,地址在 https://github.com/qihangnet/MZBlog,基于NancyFX和MongoDB开发的.博客内容需要使用 MarkDown 进 ...
- ENode简介与各种教学视频资源汇总(要进群这篇文章必看)
ENode是什么 ENode是一个.NET平台开源的应用开发框架,为开发人员提供了一套完整的基于DDD+CQRS+ES+(in-memory)+EDA架构风格的解决方案. ENode的特色是什么 解决 ...
- 我叫Twenty,我是要成为博客王的博客框架
标题套用了路飞的格式,其实我想说的是大多数都不相信你的梦想,直到你快走到了. 不废话了,介绍一下twenty: 这是基于CMS框架 zerojs打造一个博客.zerojs 的架构介绍在这里http:/ ...
- HBase笔记:对HBase原理的简单理解
早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbas ...
- ASP.NET MVC Model绑定(一)
ASP.NET MVC Model绑定(一) 前言 ModelMetadata系列的结束了,从本篇开始就进入Model绑定部分了,这个系列阅读过后你会对Model绑定有个比较清楚的了解, 本篇对于Mo ...
- C# - 缓存OutputCache(一)基础配置
本文是通过网上&个人总结的 1. 介绍 OutputCache输出缓存是复制ASP.NET页面,保存在内存的机制.这种行为有助于提高性能,通过返回的缓存达到网页及时响应的目的,减少客户机器需要 ...
- Oracle数据库操作知道
SELECT TGTID,PHONENUM,REGISTERDATE ,to_date(REGISTERDATE,'YYYY-MM-DD HH24:MI:SS') AS T FROM WTRESSEN ...