JS 中 对象 基础认识
俗话说:“万物皆对象”,在 Javascript 中除了原始值几乎所有的东西都可以看做对象:
- 布尔是对象( new 关键词定义)
- 数字是对象( new 关键词定义)
- 字符串是对象( new 关键词定义)
- 日期永远都是对象
- 算术永远都是对象
- 正则表达式永远都是对象
- 数组永远都是对象
- 函数永远都是对象
- 对象永远都是对象
一、什么是原始值
Javascript 中原始值是指没有属性和方法的值。
原始数据类型(拥有原始值的类型):
- string
- number
- boolean
- null
- undefined
二、什么是对象
“万物皆对象”,在 Java 中对象的定义:对象就是存在的具体实体,具有明确定义的状态和行为,是面向对象编程的核心,用来描述现实世界中的实体,为计算机应用程序提供实体基础,也是完成特定任务一个封装。
Javascript 中的对象是包含变量的变量,但是对象能够包含很多值。可以理解为:对象是属性和方法的命名值得容器
var person = {firstName:"Coder", lastName:"Yarn", age:22, eyeColor:"black"};
对象命名值 即 对象属性
| 属性 | 值 |
|---|---|
| firstName | Coder |
| lastName | Yarn |
| age | 22 |
| eyeColor | black |
对象方法:方法是可以在对象上执行的动作,即在对象身上发生的事件。
| 属性 | 方法 |
| fullName | function() {return this.firstName + " " + this.lastName;} |
三、对象的创建
创建对象主要三种方法:
- 对象字面量;
var person = {
firstName:"Coder",
lastName:"Yarn",
age:22,
eyeColor:"black",
fullName:function() {
return this.firstName + " " + this.lastName;
},
}; - new object();
let person = new Object();
person.firstName = "Coder";
person.lastName = "Yarn";
person.age = 22;
person.eyeColor = "black";
person.fullName = function() {
return this.firstName + " " + this.lastName;
}; - 自定义构造函数;
function Person(){
constructor(firstName,lastName,age,eyeColor){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.eyeColor = eyeColor;
};
this.fullName = function() {
return this.firstName + " " + this.lastName;
};
}; var person1 = new Person("Coder","Yarn",22,"black"); console.log(personl);
console.log(person1.fullName()); //打印的结果
Coder
Yarn
22
black
Coder Yarn
注意:出于简易性、可读性和执行速度的考虑不会使用第二种方法(new Object()),而是使用第一种创建方法(对象字面量方法)。
在 ES5 中为了简化代码,将对象共同拥有的属性和方法都放在同一个函数中,这个函数就是我们自定义的构造函数,即 Java 中的类,然后可以通过 new 一个实例对象来使用这些属性和方法,不过这种方法特别地浪费内存。 ES6 后几乎都使用对象字面量方法来创建对象。
JS 中 对象 基础认识的更多相关文章
- [转]JS中对象与字符串的互相转换
原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...
- JS中对象与字符串的互相转换
在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...
- js中对象的一些特性,JSON,scroll家族
一.js中对象的一些特性 对象的动态特性 1.当对象有这个属性时,会对属性的值重写 2.当对象没有这个属性时,会为对象创建一个新属性,并赋值 获得对象的属性的方式 为元素设置DOM0级事件 二.JSO ...
- js中对象转化成字符串、数字或布尔值的转化规则
js中对象可以转化成 字符串.数字.布尔值 一.对象转化成字符串: 规则: 1.如果对象有toString方法,则调用该方法,并返回相应的结果:(代码通常会执行到这,因为在所有对象中都有toStrin ...
- 【转载】js中对象的使用
原文链接:http://www.jb51.net/article/90256.htm[侵删] 简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一 ...
- JS中对象按属性排序(冒泡排序)
在实际工作经常会出现这样一个问题:后台返回一个数组中有i个json数据,需要我们根据json中某一项进行数组的排序. 例如返回的数据结构大概是这样: { result:[ {id:,name:'中国银 ...
- js中对象使用
简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一个含有两个属性的对象,x.y var o2={x:12,y:'12',name:'JS'}; ...
- JS 中对象的简单创建和继承
对象的简单创建 1.通过对象直接量创建 比如 var obj = {}; 2.通过new 创建 比如 var obj = new Object(); // 相当于var obj = {}; var a ...
- js中对象的创建
json方式,构造函数方式,Object方式,属性的删除和对象的销毁 <html> <head> <title>js中的对象的创建</title> &l ...
随机推荐
- spring-boot-learning-Web开发-深入理解springMVC
处理器映射 11spring启动阶段就会将@RequestMapping所配置的内容保存到处理器映射HandlerMapping机制中去 22等待请求,通过拦截器拦截请求信息与HandlerMappi ...
- memcached 最大能存储多大的单个 item?
1MB.如果你的数据大于 1MB,可以考虑在客户端压缩或拆分到多个 key 中. 为什么单个 item 的大小被限制在 1M byte 之内? 简单的回答:因为内存分配器的算法就是这样的. 详细的回答 ...
- 说说对 SQL 语句优化有哪些方法?
1.Where 子句中:where 表之间的连接必须写在其他 Where 条件之前,那些可 以过滤掉最大数量记录的条件必须写在 Where 子句的末尾.HAVING 最后. 2.用 EXISTS 替代 ...
- 有哪些类型的通知Advice?
Before - 这些类型的 Advice 在 joinpoint 方法之前执行,并使用 @Before 注解标记进行配置. After Returning - 这些类型的 Advice 在连接点方法 ...
- jsp:useBean报错The value for the useBean class attribute X is invalid
一.解决方法 1.先检查<jsp:useBean id="dog" class="cn.edu.dgut.el.tools.Dog" scope=&quo ...
- C++ | 动多态的发生时机
探究动多态的发生时机 有了虚函数和虚函数表为动多态提供支持,从而可以实现C++语言的动多态.那么,问题又来了. 动多态的发生时机是什么? 或者说,动多态发生有哪些条件与限制呢? 下面让我们一起来探究动 ...
- 「入门篇」初识JVM (下下) - GC
垃圾收集主要是针对堆和方法区进行:程序计数器.虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于> 线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收. GC - J ...
- "双非"应届生校招如何获得大厂青睐?(内附前端大厂面经+技术岗超全求职攻略)
写在前面的话 笔者从17年的2月份开始准备春招,其中遇到不少坑,也意识到自己走过的弯路.故写了这篇文章总结一番,本文适合主动学习的,对自己要学的课程不明确的,对面试有恐惧症的...等将来打算从事技术岗 ...
- 纯CSS实现扁平化风格开关按钮
开关样式预览图 前言 最近在基于bootstrap框架开发一个网站,在填写表单一项需要用户填写是否选择某一选项,本来想引用bootstrap框架自带的一个按钮插件,结果在引用js的时候总是出错,就找了 ...
- 百度图像识别SDK实验
软件构造实验作业 实验名称:百度图像识别SDK实验 班级:信1905-1 学号:20194171 姓名:常金悦 一. 实验要求 每个步骤必须截图并说明 二.实验步 ...