面向对象:Object Oriented(OO)

  一切事物皆对象,通过面向对象的方式,将显示世界的事物抽象成对象,将显示世界中的关系抽象成类、继承,帮助人们实现对显示世界的抽象与数字建模;——百科

一、基础知识点:

1、面对对象的语言都有一个标志就是都有类的概念,可以通过类创建多个具有相同属性和方法的对象;

2、ECMA-262中没有类的概念

3、ECMA-262中定义为:“无序属性的集合,其属性可以包含基本的属性值、对象或者函数”

4、理解对象:创建对象

//创建对象最简单的方式就是创建一个Object对象,再对其添加属性和方法(早期使用此方法)
var person = new Object()
person.name="Nicholas";
person.age= 56;
person.job="Software Engineer";
person.SayHai=function (){
alert(person.name)
} //以对象字面量的形式创建对象(达到的目的是一样的)
var person={
name="Nicholas";
age=34;
job="Software Engineer";
SayHai:function{
alert(person.name);
}
Ask:function{
alert("Hello World");
}
}//注意此方法中是如何创建对象方法的

  

二、属性类型

1、数据属性

//默认都为true
[[Configurable]]//表示能否通过delete删除属性从而重新定义属性、能否修改属性特性、或能否把属性改为访问器属性
[[Enumerable]]//能否通过for-in循环返回属性
[[Writable]] //能否修改属性的值
[[Value]] //包含这个属性的数据值

  要修改属性默认的特性,必须用ECMAScript5的Object.defineProperty()方法

 var person ={}
Object.defineProperty(person,"name",{
Writable:false,
Value:"Nicholas"
});

  注:以上writable:false; 就是配置name属性不可修改   在严格模式下修改回报错

var person={}
Object.defineProperty(person,"name",{
Configurable:false,
Value:"Nicholas";
});
delete person.name;
alert(person.name);//Nicholas

  注:以上Configurable:false; 所以delete删除  person.name在非严格模式下不起作用,在严格模式下回报错;

☆☆☆☆☆  可以多次Object.defineProperty()方法修改同一个属性,但在configurable特性设置了false之后在调用、修改就会有限制了(报错)

2、访问器属性

三、定义多个属性

//定义多个属性

var book={};
Object.defineProperties(book,{
_year:{
Writable:true,
Value:2004
}, edition:{
Writable:true,
Value:1
}, year:{
get:function(){
return this._year;
}, set:function(){
if(newValue > 2004){
this._yeay=newValue;
this.edition+=newValue - 2004
}
}
}
});

  

四、读取属性的特性;

Object.getOwnPropertyDescriptor()  // 方法

  

javascript中的面向对象—— 学习1的更多相关文章

  1. 如何理解并学习javascript中的面向对象(OOP) [转]

    如果你想让你的javascript代码变得更加优美,性能更加卓越.或者,你想像jQuery的作者一样,写出属于自己优秀的类库(哪怕是基于 jquery的插件).那么,你请务必要学习javascript ...

  2. 简单分析JavaScript中的面向对象

    初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...

  3. 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型

    前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...

  4. 前端开发:面向对象与javascript中的面向对象实现(一)

    前端开发:面向对象与javascript中的面向对象实现(一) 前言: 人生在世,这找不到对象是万万不行的.咱们生活中,找不到对象要挨骂,代码里也一样.朋友问我说:“嘿,在干嘛呢......”,我:“ ...

  5. JavaScript从初见到热恋之深度讨论JavaScript中的面向对象。

    JavaScript中的面向对象.面向对象的三个基本特征:封装.继承.多态. 1.封装 js的封装如下 定义Person类 function Person(name,age,sex) { this.n ...

  6. 前端开发:javascript中的面向对象

    前端开发:面向对象与javascript中的面向对象实现(一) 面向对象理解: 面向对象是一种对现实世界理解和抽象的方法,是一种先进的程序设计理念,是一种比较抽象的,多形态的设计模式.我们可以这么理解 ...

  7. 深入理解javascript中实现面向对象编程方法

    介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...

  8. JavaScript中的面向对象的讨论(转)

    前言 今天,WEB2.0时代的到来,给了JavaScript又一次大展身手的机会.Web2.0借助JavaScript技术,使得客户端的Web体验更加丰富多彩,同时JavaScript面对的问题域也变 ...

  9. JavaScript中的EcMAScript学习笔记

    一.Javascript概述(知道)    a.一种基于对象和事件驱动的脚本语言    b.作用: 给页面添加动态效果    c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAs ...

随机推荐

  1. zoj 1610 Count the Colors(线段树延迟更新)

    所谓的懒操作模板题. 学好acm,英语很重要.做题的时候看不明白题目的意思,我还拉着队友一块儿帮忙分析题意.最后确定了是线段树延迟更新果题.我就欣欣然上手敲了出来. 然后是漫长的段错误.... 第一次 ...

  2. 代码创建 WPF 旋转动画

    一.WPF窗体上有一个名为rectangle2的矩形 对应的XAML如下: <Window x:Class="WpfVideo.Window1"         xmlns= ...

  3. 游戏对象、组件和Prefabs

    如标题所言,本文由3个部分组成,分别讲述游戏对象.组件和Prefabs(预设体). 1. 游戏对象 任何游戏对象都由组件组成,组件是实现一切功能所必需的.我们创建的对象会在Hierarchy视图中显示 ...

  4. ubuntu安装 cober 笔记

    设置原始Ubuntu原始Root密码 安装Mysql 安装Jdk 拷贝Cober到Linux,启动服务(看日志) 设置原始Ubuntu原始Root密码 $ sudo passwd root 修改系统文 ...

  5. java基础练习 5

    import java.util.Scanner; public class Fifth { /*输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组.*/ public static ...

  6. Ubuntu16.04 server下配置MySQL,并开启远程连接

    背景 最近正在学nodejs,想到曾经有台云服务器,但是很久不用了,由于怕麻烦,一股脑的把云主机重装了个Ubuntu系统,于是配置MySQL成了配置服务中的一个环节(node用不用MySQL不管,主要 ...

  7. UOJ#117. 欧拉回路

    #117. 欧拉回路 题目描述 有一天一位灵魂画师画了一张图,现在要你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次. 一共两个子任务: 这张图是无向图.(50分) 这张图是有向图.(5 ...

  8. 集合点(lr_rendezvous)

    含义: 当通过controller虚拟多个用户执行该脚本时,用户的启动或运行都不一定是同时的.集合点是在脚本的某处设置一个标记,当有虚拟用户运行到这个标记时,停下等待,知道所有用户到达这个标记处,再一 ...

  9. redis服务器安装-SuSE Linux Enterprise Server 11 SP3

    一.下载 官网下载,可自选版本,点击进入下载,这里下载了redis-3.2.4 放到 /root/usr/local/redis/ 目录下 二.编译 1. 执行make编译redis tar -zxz ...

  10. find指令

    1.命令格式 find path -options [-print -exec -ok ...] 2.命令功能 查找文件,并作出相应处理 3.命令参数