1、理解对象:

创建自定义对象最简单的方式就是创建一个object实例,再给他添加属性和方法。

let person = new Object();
person.name = 'zhangsan';
person.age = 25;
person.sayName = function (){alert(this.name)};
//=============================

以上实例现在可以这样写:

let person = {
name:'zhangsan',
age:25
sayName:function(){
alert(this.name);
}
}

2、属性类型

  数据属性,访问器属性

Value:这个属性的属性值

let person = {};
Object.defineProperty(person,"name",{
value:"ZhangSan"
});
let person = {};
Object.defineProperty(person,"age",{
value:25
});

Configurbale:表示是否能通过Delete删除属性并重定义,能否修改属性的特性,这个属性的默认值是true;

let person = {};
Object.defineProperty(person,"name",{
configurable:true,
value:"ZhangSan"
});
Object.defineProperty(person,"age",{
configurable:false,
value:25
});
delete person.name;
delete person.age;
alert(person.name);//输出 undefined
alert(person.age);//输出 25 Object.defineProperty(person,"age",{
configurable:true,//抛出错误,configurable为false后无法重定义;
value:25
});

Enumable:为false的时候无法for-in循环返回属性,当使用new Object创建实例的时候默认是false,直接定义为true;

Writable:是否可以修改属性的值,默认是true;

let person = {};
Object.defineProperty(person,"name",{
writable:true,
value:"ZhangSan"
});
Object.defineProperty(person,"age",{
writable:false,
value:25
});
person.name = 'lisi';
person.age = 33;
alert(person.name);//输出 lisi
alert(person.age);//输出 25

访问器属性不包含数值,它们包含一对getter和setter函数;

Get:Set:默认值都是undefined

let book = {
edition: 1
};
Object.defineProperty(book, "_year", {
get: function () {
return this.year;
},
set: function (newValue) {
if (newValue > 2004) {
this.year = newValue;
this.edition += newValue - 2004;
console.log(newValue);
}
}
});
book.year = 2005;
alert(book.year);// 输出2005
alert(book.edition);// 输出2

在不支持Object.defineProperty()方法的浏览器中不能修改[Configurable],和[Enumerable]。

3、定义多个属性

let book = {};
Object.defienProperties(book,{
year:{
writable:true,
value:2004
}
edition:{
writable:true,
value:1
}
});

4、读取属性的特性

==

JavaScript面向对象--记录防忘记(一)的更多相关文章

  1. JavaScript学习记录三

    title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  2. javascript面向对象系列第一篇——构造函数和原型对象

    × 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如 ...

  3. Javascript知识点记录(三)设计模式

    Javascript设计模式记录,这个方面确实是没写过,工作中也没有用到js设计模式的地方. prototype与面向对象取舍 使用prototype原型继承和使用面向对象,都可以实现闭包的效果.那么 ...

  4. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  5. 再谈javascript面向对象编程

    前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...

  6. 《JavaScript面向对象编程指南》读书笔记②

    概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...

  7. 《JavaScript面向对象编程指南》读书笔记①

    概述 JavaScript快忘完了,想看一本专业书拾遗,所以看了这本<JavaScript面向对象编程指南>. 个人觉得这本书讲的很透彻很易懂,一些原来有疑惑的地方在这本书里面豁然开朗,看 ...

  8. 闭包初体验 -《JavaScript面向对象编程指南》

    下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...

  9. JavaScript面向对象小抄集

    前言 本文旨在记录JavaScript中面向对象的基础知识 搞明白JavaScript中的面向对象 一切都是对象 JavaScript中,除了基本类型外,其它类型都是对象类型 所谓对象就是若干属性的集 ...

随机推荐

  1. eclipse打开package explorer视图

    第一步:window-show view-other 第二步:

  2. java中级——集合框架【3】-HashSet

    HashSet package cn.jse.hashset; import java.util.HashSet; public class TestCollection { public stati ...

  3. WPF中如何为ItemsControl添加ScrollViewer并显示ScrollBar

    今天在开发的过程中突然碰到了一个问题,本来的意图是想当ItemsControl中加载的Item达到一定数量时,会出现ScrollViewer并出现垂直的滚动条,但是实际上并不能够达成目标,对于熟手来说 ...

  4. 当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体

    最近在做一个WCF程序的时候,WCF程序老是弹出一个错误“当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体是无效操作.请指定ServiceNotification或Def ...

  5. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  6. 洛谷 p1092 虫食算

    题目链接: https://www.luogu.org/problemnew/show/P1092 这个题折腾了我好久 这其实本质上是一道凑算式的题目 ,让一个二维数组存算式,一个一位数组存字母分别代 ...

  7. 解析$(this).data('type');

    html: <button type="button" class="layui-btn layui-btn-sm" data-type="ad ...

  8. Spring Boot 构建电商基础秒杀项目 (六) 用户登陆

    SpringBoot构建电商基础秒杀项目 学习笔记 userDOMapper.xml 添加 <select id="selectByTelphone" resultMap=& ...

  9. 学习 Spring (十) 注解之 @Bean, @ImportResource, @Value

    Spring入门篇 学习笔记 @Bean @Bean 标识一个用于配置和初始化一个由 Spring IoC 容器管理的新对象的方法,类似于 XML 配置文件的 可以在 Spring 的 @Config ...

  10. Windows & RabbitMQ:集群(clustering) & 高可用(HA)

    描述:我们需要配置三台服务器:ServerA, ServerB, ServerC 注意事项: 所有的服务器的Erlang版本,RabbitMQ版本必须一样 服务器名大小写敏感 Step 1:安装Rab ...