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 ...
随机推荐
- 全方位讲解 Nebula Graph 索引原理和使用
本文首发于 Nebula Graph Community 公众号 index not found?找不到索引?为什么我要创建 Nebula Graph 索引?什么时候要用到 Nebula Graph ...
- vs code下代码提示图标的含义(c++)
其实不同的语言这些东西的含义还有不同 但差别也不是很大,比如Python中的那个大括号图标就成了模块(module)了
- python学习笔记(九)——线程与进程
一.线程 Python 中为我们提供了两个模块来创建线程. _thread threading thread 模块已被废弃.用户可以使用 threading 模块代替.所以,在 Python 中不能再 ...
- ip地址与子网掩码概述
IP地址: IP地址(Internet Protocol):IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异. IP地址分为五 ...
- [译] 沙箱中的间谍 - 可行的 JavaScript 高速缓存区攻击
原文 The Spy in the Sandbox – Practical Cache Attacks in Javascript 相关论文可在 https://github.com/wyvernno ...
- WePY为了兼容支付宝小程序,改了好几十行代码
早在16年底,就有流出支付宝在做小程序的事情,见<如何看待支付宝推出「小程序」?>,今年8月18号支付宝版本小程序的终于公测,十月怀胎实属不易啊. 紧接着就有人给我提ISSUE了: 此时我 ...
- 如何利用WebSocket实现网页版聊天室
花了将近一周的时间终于完成了利用WebSocket完成网页版聊天室这个小demo,期间还走过了一段"看似弯曲"的道路,但是我想其实也不算是弯路吧,因为你走过的路必将留下你的足迹.这 ...
- H5的audio在ios系统的微信上不能自动播放的问题
前几天有个需求,要在H5页面中添加背景音乐,本以为很easy,却也踩了一些坑,废话不多说,进入正题: 撸完代码测试的时候才发现在安卓手机上背景音乐可以正常播放,但在iphone里的微信和safari中 ...
- MySQL优化篇系列文章(二)——MyISAM表锁与InnoDB锁问题
我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦 ...
- 界面跳转+Android Studio Button事件的三种方式
今天学习界面跳转 java类总是不能新建成功 看了网上教程 (20条消息) 关于android studio无法创建类或者接口问题的解决方法_qq_39916160的博客-CSDN博客 可以新建了 但 ...