JavaScript面向对象--记录防忘记(一)
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面向对象--记录防忘记(一)的更多相关文章
- JavaScript学习记录三
title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- javascript面向对象系列第一篇——构造函数和原型对象
× 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如 ...
- Javascript知识点记录(三)设计模式
Javascript设计模式记录,这个方面确实是没写过,工作中也没有用到js设计模式的地方. prototype与面向对象取舍 使用prototype原型继承和使用面向对象,都可以实现闭包的效果.那么 ...
- 【转】javascript面向对象编程
摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...
- 再谈javascript面向对象编程
前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...
- 《JavaScript面向对象编程指南》读书笔记②
概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...
- 《JavaScript面向对象编程指南》读书笔记①
概述 JavaScript快忘完了,想看一本专业书拾遗,所以看了这本<JavaScript面向对象编程指南>. 个人觉得这本书讲的很透彻很易懂,一些原来有疑惑的地方在这本书里面豁然开朗,看 ...
- 闭包初体验 -《JavaScript面向对象编程指南》
下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 参考<JavaScript面向对象编程指南> 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函 ...
- JavaScript面向对象小抄集
前言 本文旨在记录JavaScript中面向对象的基础知识 搞明白JavaScript中的面向对象 一切都是对象 JavaScript中,除了基本类型外,其它类型都是对象类型 所谓对象就是若干属性的集 ...
随机推荐
- bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)
/查询单个 function query(id) { $.ajax({ url : "/small/productServlet", async : true, type : &q ...
- Vue 鼠标移入移出事件
Vue 中鼠标移入移出事件 @mouseover和@mouseleave 然后绑定style 现在开始代码示例 <template> <div class="pc&qu ...
- python学习笔记(11)--数据组织的维度
数据的操作周期 存储 -- 表示 -- 操作 一维数据表示 如果数据有序,可以使用列表[]:如果数据没有顺序,可以使用集合{} 一维数组存储 存储方式一:空格分隔 ,使用一个或多个空格分隔进行分隔, ...
- MyBatis SpringBoot 杂记
最近接了个xxx代码. 不能说人家不好, 因为必进年月久了.能用这么长时间, 不就说明还不错么?! 我们现在每天写的, 能超出人家的么~~~ 呵呵 Java项目中, 把动态数据源切换的框架整合进来. ...
- How to enable flash on Chromium
sudo apt install chromium-browser pepperflashplugin-nonfree
- redis两种持久化
Redis 提供了不同级别的持久化方式: RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据 ...
- 【python练习题】程序9
#题目:暂停一秒输出. import time for i in range(5): print (i) time.sleep(1)
- Vasya and a Tree CodeForces - 1076E(线段树+dfs)
I - Vasya and a Tree CodeForces - 1076E 其实参考完别人的思路,写完程序交上去,还是没理解啥意思..昨晚再仔细想了想.终于弄明白了(有可能不对 题意是有一棵树n个 ...
- 洛谷-p2764(最小路径覆盖)(网络流24题)
#include<iostream> #include<algorithm> #include<queue> #include<cstring> #in ...
- 轻量级浏览器Midori
导读 这是一个对再次回归的轻量级.快速.开源的 Web 浏览器 Midori 的快速回顾. 如果你正在寻找一款轻量级网络浏览器替代品,请试试 Midori. Midori是一款开源的网络浏览器,它更注 ...