JS-OOP(对象)

贾蔷
• 阅读 1441

对象

对象在JS中的地位很重要,我们每时每刻都在和对象做着交互。但是如何向一个人介绍什么是对象呢?

个人感觉对象就像一个集合,集合中的元素也必定属于这个集合。
就像对象中的属性都是围绕这个对象展开的。或者可以借用电商方面的一个词语sku,它定义为保存库存控制的最小可用单位,那么对象就可以看做拥有这些sku的商品。

var personal = {
   name: '', 
   age: '',
   gender: ''
   ...
}

以上就是一个简单对象的定义方法,我定义了一个personal对象,他目前有三个属性,属性是这样定义的[key:value]

属性类型

属性是属于对象的,在JS中我们操作对象获取它的属性或者修改它的属性。EXMAScript中有两种属性数据属性&访问器属性

数据属性

数据属性包括一个数据值的位置。这个位置可以读入以及写入值

如果要修改属性的默认特性通过Object.defineProperty()方法进行修改,这个方法接收三个参数

  • 第一个:属性所在的对象
  • 第二个:属性的key
  • 第三个: 描述符对象(这是一个对象)
var book = {
    name: 'JS权威指南',
    price: 115
}

Object.defineProperty(book,'name',{
   writeable: false,
   value: 'JS高程'
})

访问器属性

访问器属性不包含数据值,但是包含一对getter/setter函数,读取访问器调用getter,设置值时调用setter

var book = {
   year: 2018,
   author: 'xx'
}

Object.defineProperty(book,'year',{
   get: function () {
      return this.year;
   },

   set: function (val) {
     var time = this.year; 
     if(val<time){
         return "新书"
     }
     ....
  }
})
点赞
收藏
评论区
推荐文章
HelloWorld官方 HelloWorld官方
4年前
C++ 基本语法
C程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象对象具有状态和行为。例如:一只狗的状态颜色、名称、品种,行为摇动、叫唤、吃。对象是类的实例。类类可以定义为描述对象行为/状态的模板/蓝图。方法从基本上说,一个方法表示一种行为。一个类可以包含多个
Karen110 Karen110
3年前
一篇文章带你了解JavaScript作用域
在JavaScript中,对象和函数也是变量。在JavaScript中,作用域是你可以访问的变量、对象和函数的集合。JavaScript有函数作用域:这个作用域在函数内变化。一、本地JavaScript变量一个变量声明在JavaScript函数内部,成为函数的局部变量。局部变量有局部作用域:它们只能在函数中访问。JS://codeherecann
海军 海军
4年前
关于JavaScript 对象的理解
关于JavaScript对象的理解对象理解对象ECMA262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。我们可以把ECMAScript的对象想象成散列表:无非就是一组名值对,其中的值可以是
大厂Java初级开发工程师!!!面试必问项之Set实现类:TreeSet
一、TreeSet概述1、TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态。2、TreeSet顾名思义他内部维护的是一个TreeMap,底层是红黑二叉树,他使得集合内都是有序的序列。  3、Tree可以按照添加对象的指定属性,进行排序,所以向TreeSet中添加的数据,要求是相同类的对象。4、两
Wesley13 Wesley13
3年前
java反射练习 对集合中元素 按照方法进行排序
/\\\对集合中元素按照指定方法进行排序\\@paramlist需要排序的集合\@paramproperty时间对象在集合对象中属性名称\@parammethod排序字段get方法\@paramreverse是否倒序\/publicstatic<Tvoidsor
Stella981 Stella981
3年前
Set针对复杂对象去重问题
Set针对复杂对象去重问题​在项目中我们经常使用set,因其可以去重特性,平时使用较多的是基础数据类型,Set<Integer,Set<Long等,这些在使用中都没碰到什么问题。最近在项目中碰到自定义对象去重,用后创建的对象去覆盖set中type相同的对象,于是想到Set这个集合类型,并且重写了自定义对象的equals()和hashC
Easter79 Easter79
3年前
TypeScript 中的类和接口
在面向对象(OOP)编程中,经常会使用到class(类)和interface(接口)。在TypeScript(以下简称TS)中也引入了类和接口的概念,使得TS强大的类型检测机制更加完善。就像我们所知道的,一个类是一堆抽象概念的集合,我们可以从类的构造方法中创建出享有共同属性和方法的对象。一个接口所描述的是一个对象相关的属性和方法,但并不提供具体创建此对象实例
Wesley13 Wesley13
3年前
System、Runtime、Date、Calendar、Math
System类中的方法和属性都是静态的。out:标准输出,默认是控制台in:标准输入,默认是键盘获取系统属性信息:PropertiesgetProperties();因为Properties是Hashtable的,也就是Map集合的子类对象,那么可以通过map的方法取出集合中的元素,该集合中存储都是字符串,没有泛型定义。setPr
Wesley13 Wesley13
3年前
Java集合框架源码及高质量代码案例分析
Java集合框架源码分析本次源码分析对JavaJDK中的集合框架部分展开分析,采用的是JDK1.8.0\_171版本的源码。Java集合框架(JavaCollectionsFramework,JCF)也称容器,即可以容纳其他Java对象的对象。JCF为开发者提供了通用的容器,数据持有对象的方式和对数据集合的操作,优点是:1
Stella981 Stella981
3年前
Redis实现之对象(一)
对象前面我们介绍了Redis的主要数据结构,如:简单动态字符串SDS、双端链表、字典、压缩列表、整数集合等。Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象,每种对象都用到了至少一种我们之前介绍的数据结构通过这五种
Wesley13 Wesley13
3年前
.Net转Java自学之路—基础巩固篇十三(集合)
集合:集合是用于存储对象的一个工具。  集合与数组的特点    相同点:都是一个容器    不同点:      集合:可以存储对象,只能存储对象,集合长度可变。      数组:可以存储对象,也可以存储基本数据类型,数组长度固定。  容器对象有很多种,通过内部的数据结构来区分,数据结构就是一种数据存储方式。  在不断
贾蔷
贾蔷
Lv1
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄,多情却被无情恼。
文章
6
粉丝
0
获赞
0