注意: 本文章为 <重学js之JavaScript高级程序设计>系列第五章[JavaScript引用类型]. 关于<重学js之JavaScript高级程序设计>是重新回顾js基础的学习. 1. 什么是面向对象 面向对象的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,再前面提到过.ES中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 对象的定义:'无序属性的集合,其属性可以包含基本值.对象或者函数.' 严格来讲,这就相当…
首先,JavaScript 面向对象的程序设计,主要分三部分. 理解对象属性: 理解并创建对象: 理解继承. 本文主要从第一方面来阐述: 理解对象属性 首先我们来理解Javascript对象是什么?在Javascript中,万物皆对象.其中创建自定义对象的最简单的方式就是创建一个Object的实例,如下:   ECMAScript中有两种属性:数据属性和访问器属性. 数据属性:其中数据属性有四个描述其行为的特性:Configurable: 表示能都通过delete删除属性从而重新定义属性.Enu…
新手应该怎么学习JS?JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码,说到这,我们首先要来说明一个需要新人们关注的点,因为我们的js是一门跨平台的语言,所以说,我们的代码可以运行在不同的平台之上.这也就导致了可能相同的代码放在不同的平台运行就会有所出入. 这里面说的平台其实被称之为宿主环境. 同时,代码在不同的平台上的运行方式也有所不同. 如果运…
面向对象(Object-oriented,OO)的语言有一个标志,那就是它们都有类的概念.而通过类可以创建任意多个具有相同属性和方法的对象.前面提到过,ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. ECMAScript-262把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.”严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名字都映射到一个值.正因为这样(以及其他将要讨论的原因),我们可以把ECMA…
ECMAScript支持面对对象(oo)编程,但不使用类或接口.对象可以在代码执行过程中创建和增强,因此具有动态性而非严格定义的实体.在没有类的情况下,可以此采用下列模式创建对象. 工厂模式,使用简单的函数创建对象,位对象添加属性和方法,然后返回对象.这个模式后来被构造函数模式所取代. 构造函数模式,可以创建自定义类型,可以像创建内置对象实例一样使用new操作符.不过,构造函数模式也有缺点,既它的每个成员都无法得到复用,包括函数.由于函数可以不局限与任何对象(即与对象具有松散耦合的特点),因此没…
最新更新请访问: http://denghejun.github.io JavaScript与OOP   JavaScript作为web前端一种重要的脚本技术,已被大多开发人员所熟知.compare with the other   programming language,可能会有很多不同的地方.但据我观察大多数普通程序员仅仅会用script 做一些简单的工作,例如前端验证.DOM元素查找等.当然,不可否认,有时候似乎我们没有必要把 script代码编写的太过于复杂或是紧凑.从自我追求上讲,每…
最近在阮大神的博客上看到一篇文章,讲的是关于如何自学计算机技术,原文出自 Teach Yourself Computer Science.看完以后我明白自己的缺陷在哪里,基础不够牢固是我最大的问题. 经过多年的摸索,学以致用是学习最好的方式,这个已经深入我心,所以在对基础学习的过程中,我准备边学边用. 在 github 上建了一个新的项目,名字叫做:javascript-learning-guide,启发来源于一个 Node 学习笔记,希望我的学习过程也能影响一部分人,特别是自学前端的同学,毕竟…
Object.getOwnPropertyDescriptor()用于获取给定属性的描述信息,这个描述信息是一个对象. 如果是访问器属性,则这个对象的属性有configurable,enumerable,get,set. 如果是数据属性,则这个对象属性有,configurable,enumerable,writable,value. var human = { _age:18,//下划线是一种常用的记号.用于只能通过对象方法访问的属性 role:"大人" }; Object.defin…
1.封装 import java.util.Date; public class Human { protected String name; protected BirthDay birthDay; protected String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return…
转换与继承 本节主要须要区分的是: 基类和派生类的转换: 引用(指针)的转换和对象的转换. 1.每一个派生类对象包括一个基类部分.因此.能够像使用基类对象一样在派生类对象上执行操作. 基于这一点,能够将派生类对象的引用(指针)转换为基类子对象的引用(指针),且存在自己主动转换. 反之,基类到派生类的自己主动转换是不存在的,因此基类不包括派生类型的成员.另外,将基类指针或引用绑定到派生类对象时也存在限制,由于编译器编译时无法知道该转换是安全的(编译器确定转换是否合法,仅仅看指针或引用的静态类型).…