有前辈说过,在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. Oracle常用SQL函数整理

    --返回ASCII码select  ASCII('A') "A的ASCII码" ,ASCII('a') "a的ASSCII码" from dual ; --反向 ...

  2. 机器学习之sklearn——EM

    GMM计算更新∑k时,转置符号T应该放在倒数第二项(这样计算出来结果才是一个协方差矩阵) from sklearn.mixture import GMM    GMM中score_samples函数第 ...

  3. web前端的春天 or 噩梦

    「 微信应用号可以做什么」 简单说,微信"小程序"可以为开发者提供基于微信的表单.导航.地图.媒体和位置等开发组件,让他们在微信的网页里构建一个 HTML 5 应用.同时微信还开放 ...

  4. Visual Studio 2015 移动跨平台开发初体验

    微软换了新 CEO 后变化很大,对我们团队最有利的消息就是 Visual Studio 2015 支持移动应用跨平台开发. 还记不记得很早之前,Xamarin 宣布与微软成为合作伙伴的消息.显然,Xa ...

  5. 让tomcat支持中文cookie

    这的确是一个不正常的需求,按照规范,开发者需要将cookie进行编码,因为tomcat不支持中文cookie. 但有时候,你不得不面对这样的情况,比如请求是由他人开发的软件,比如,浏览器控件发出的. ...

  6. 反向代理与 Real-IP 和 X-Forwarded-For

    开篇语:开涛新作<亿级流量网站架构核心技术>出版计划公布以来,博文视点遭受到一波又一波读者询问面世时间的DDos攻击.面对亿级流量的热情,感激之余,我们也很庆幸——这部作品质量的确过硬,不 ...

  7. Android-Eclipse-INSTALL_FAILED_UPDATE_INCOMPATIBLE错误

    电脑重装了系统,环境问题一大堆,唉,搞死人,这不,今天就出现了这样的一个奇怪的问题. INSTALL_FAILED_UPDATE_INCOMPATIBLE 最后搜了一遍,发现是因为已经安装了这个包,包 ...

  8. WCF学习之旅—HTTP双工模式(二十)

    WCF学习之旅—请求与答复模式和单向模式(十九) 四.HTTP双工模式 双工模式建立在上文所实现的两种模式的基础之上,实现客户端与服务端相互调用:前面介绍的两种方法只是在客户端调用服务端的方法,然后服 ...

  9. ASP.NET MVC Anti-XSS方案

    1:Form提交模式 在使用Form提交时,MVC框架提供了一个默认的机制.如果数据中含有恶意字,则会自动转向出错页面.   2:Ajax+JSON提交模式. MVC框架未提供对于Json数据的Ant ...

  10. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...