javascript学习笔记(二)数组和对象部分

javascript对象部分

一:基础部分

1.JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined。

2.Jscript 支持四种类型的对象:内部对象、生成的对象、宿主给出的对象(所有BOM和DOM对象都是宿主对象。)以及 ActiveX 对象(外部组件)。

3.Microsoft Jscript 提供了 11 个内部(或“内置”)对象。它们是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 对象。

4.对象只是一种特殊的数据。对象拥有属性和方法。 JavaScript 是面向对象的语言,但 JavaScript 不使用类。 JavaScript 基于 prototype,而不是基于类的。

5.属性:是隶属于某个特定对象的变量。方法:是只有某个特定对象才能调用的函数。

6.Jscript 对象是属性和方法的集合。一个方法就是一个函数,是对象的成员。属性是一个值或一组值(以数组或对象的形式),是对象的成员。

7.javascript对象是基于构造器函数的,使用构造器函数创建一个新对象时,就可以说是实例化了一个新对象。属性是构造器函数内部的变量。

使用构造器函数实例化的对象:

cat = new Animal();
8.Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。

复制代码 代码如下:


<script type="text/javascript">
    //对象是名/值对的集合
        var browser = {     //对象是由花括号括起来的
            name:"Firefox",
            kernel:"Gecko"
        };
</script>

复制代码 代码如下:


 //通过点号(.)或“[]”来访问对象的属性
    browser.name         //"Firefox"
    browser["kernel"]   //"Gecko"

对象(objct)是属性(property)的集合,每个属性都由“名/值对”构成,js同样定义了一个特殊的对象——数组,它是带有编号的值的有序集合。js还定义了一个特殊的对象——函数,函数是具有与他相关联的可执行代码的对象,通过调用函数来执行代码,并返回运算结果。

理清概念:
JS中"基于对象=面向对象"4.JS中没有类(Class),但是它取了一个新的名字叫“原型对象”,因此"类=原型对象"

二:类(原型对象)和对象(实例)的区别与联系###  

1.类(原型对象)是抽象,是概念的,代表一类事物。
 2.对象是具体的,实际的,代表一个具体的事物。
   3.类(原型对象)是对象实例的模板,对象实例是类的一个个体。
一个常见的误解是数字的字面值(literal)不是对象。这是因为 JavaScript 解析器的一个错误,它试图将点操作符解析为浮点数字面值的一部分。

有很多变通方法可以让数字的字面值看起来像对象。

2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计算
删除属性

删除属性的唯一方法是使用 delete 操作符;设置属性为 undefined 或者 null 并不能真正的删除属性,而仅仅是移除了属性和值的关联。

JavaScript面向对象三大特征

封装:不考虑内部实现,只考虑功能使用
继承:从已有对象上,继承出新的对象
多态:所谓多态,就是指一个引用在不同情况下的多种状态,
1.封装

封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比如人这个东东,可用下面的方式封装:

人{
年龄(属性一)
身高(属性二)
性别(属性三)

做事(行为之一)
走路(行为之二)
说话(行为之三)
}

封装的好处:

封装保护了内部数据的完整性;
封装使对象的重构更轻松;
弱化模块间的耦合,提高对象的可重用性;
有助于避免命名空间冲突;
看下面一个例子:

复制代码 代码如下:


 <script type="text/javascript"> 
            var boy = {}; //创建一个空对象
                    boy.name = "小明";//按照原型对象的属性赋值
                    boy.age = 12;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgsjzd.html