文档章节

JavaScript面向对象学习——3

learn_more
 learn_more
发布于 2014/12/14 23:57
字数 912
阅读 123
收藏 6

对象基础介绍:

1、对象是JavaScript的基本数据类型。在java中Object是所有对象的基类,在JavaScript中同样,Object是所有对象的基类,那么Object自身属性和方法在所有对象中都会体现,只是不同的类对方法有不同的重写。

2、JavaScript对象是动态的—可以新增属性也可以删除属性—但它们常用来模拟静态对象以及静态类型语言中的“结构体”(struct)。有时它们也用做字符串的集合(忽略名/值对中的值)。 

3、除字符串、数字、true. false. null和undefined之外,JavaScript中的值都是对象。 尽管字符串、数字和布尔值不是对象,但它们的行和不可变对象非常类似。 

4、对象是可变的,我们通过引用而非值来操作对象。如果变量x是指向一个对象的引用,那么执行代码yar y二x;变量y也是指向同一个对象的引用,而非这个对象的副本。通过变量y修改这个对象亦会对变量x造成影响。对象最常见的用法是:

 创建(create )、设置(set)、查找(query )、删除(delete )、检测(test)和枚举(enumerate)它的属性。

对象的属性:

1、属性包括名字和值。属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性。值可以是任意JavaScript值,或者(在ECMAScript 5中)可以是一个getter或setter函数(或两者都有)。除了名字和值之外,每个属性还有一些与之相关的值,称为“属性特性”(property attribute):

    可写(veritable attribute),表明是否可以设置该属性的值。

    可枚举(enumerable attribute ),表明是否可以通过for/in循环返回该属性。

    可配置(configurable attribute),表明是否可以删除或修改该属性。

在ECMAScript 5之前,通过代码给对象创建的所有属性都是可写的、可枚举的和可配置的。在ECMAScript 5中则可以对这些特性加以配置

除了包含属性之外,每个对象还拥有三个相关的对象特性(object attribute):

    对象的原型 (prototype)指向另外一个对象,本对象的属性继承自它的原型对象。

    对象的类( class )是一个标识对象类型的字符串。

    对象的扩展标记 (extensible flag)指明了(在ECMAScript 5中)是否可以向该对象添加新属性。

2、用下面这些术语来对三类JavaScript对象和两类属性作区分:

内置对象(native object)是由ECMAScript规范定义的对象或类。例如,数组、函数、日期和正则表达式都是内置对象。

宿主对象(host object)是由JavaScript解释器所嵌入的宿主环境(比如Web浏览器)定义的一。客户端JavaScript中表示网页结构的HTMLEIement对象均是宿主对象。既然宿主环境定义的方法可以当成普通的JavaScript函数对象,那么宿主对象也可以当成内置对象。

自定义对象(user-defined object)是由运行中的JavaScript代码创建的对象。

自有属性(own property)是直接在对象中定义的属性。

继承属性(inherited property)是在对象的原型对象中定义的属性。


© 著作权归作者所有

learn_more
粉丝 94
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
分享51本关于JavaScript方面的学习书籍(免费下载)

分享51本关于JavaScript方面的学习书籍(免费下载) 1、JavaScript面向对象15分钟教程 2、原型、作用域、闭包的完整解释 3、Javascript面向对象特性实现(封装、继承、接口) 4、JavaScript面向...

邓剑彬
2012/12/02
1K
12
每个JavaScript工程师都应懂的33个概念

摘要: 基础很重要啊! 原文:33 concepts every JavaScript developer should know 译文:每个 JavaScript 工程师都应懂的33个概念 作者:stephentian Fundebug经授权转载,版权归原作者所有...

Fundebug
2018/10/30
0
0
是时候谈谈JavaScript面向对象了!(我们什么时候更需要它)

前端技术尤其是JavaScript,经常被后端觉得不是正经编程语言,大多数是因为JavaScript是基于函数的语言,因此潜在上使得它在使用和发展上有所局限。 我记得在90年代末和21世纪初,JavaScrip...

Little heaven
05/14
0
0
JavaScript开发者应懂的33个概念

简介 这个项目是为了帮助开发者掌握 JavaScript 概念而创立的。它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南。 本篇文章是参照 @leonardomso 创立,英文版项目地址在这里。 ...

大灰狼的小绵羊哥哥
2018/10/22
0
0
JavaScript 面向对象学习——1

公司项目采用Ext,结果本人发现入门不易!尤其是采用JavaScript编写面向对象程序,经常使用jQuery的知道,jQuery是面向函数编程的,所以很容易入门。然而,Ext是面向对象的,那么,当你想要自...

learn_more
2014/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

URL/URI/URN的认识

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还...

WinkJie
18分钟前
1
0
vs2017 踩坑

好久没有使用vs2017,改了下代码,启动调试进行测试,一没有注意,就启动了。 然后 ,悲剧了,,,就有下面的问题。 VS断点提示:当前不会命中断点。还没有为该文档加载任何符号 然后百度了下,...

轻轻的走过
19分钟前
1
0
解决一个emqttd trace 无法打开的问题

emqttd这个东西做的真心不咋地,之前有emq_auth_mysql的plugin死活无法启动的问题,现在又碰到trace无法打开的问题。 查看emqttd服务器当前连接的所有client: emqttd_ctl clients list 要打...

莫在全
26分钟前
1
0
java wsdl 中不显示参数属性类型的问题解决方案

CXF3.0.1解决方案: 配合spring方式 <jaxws:endpoint id="receiveUMSMessageService" implementor="com.sw.extInterface.webservice.service.impl.ReceiveUMSMessageServiceImpl" address="......

嘿嘿嘿IT
29分钟前
1
0
go alpine docker image 搭建

Dockerfile 搭建 目录结构 --Dockerfile--main.go 写一个go的helloworld package mainimport ("fmt""log""net/http")func main() {http.HandleFunc("/", hello)err := ht......

solate
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部