如何理解javascript的对象


本文摘自PHP中文网,作者醉折花枝作酒筹,侵删。

在JS中或者说在面向对象的编程语言中,对象是一系列属性和方法的组合。一个属性包含属性名和属性值,这个值可以是任意类型的数据,也可以是个函数,这种情况下函数也被称为方法。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

1.1 什么是对象?

对象是事物,在现实世界中,一个球,一张桌子,一辆汽车都是对象。

对象就是具有可描述特征的事物,我们可以用某种特定的方式去影响和操作它。

在JS中或者说在面向对象的编程语言中,对象是一系列属性和方法的组合。

一个属性包含属性名和属性值,这个值可以是任意类型的数据,也可以是个函数,这种情况下函数也被称为方法。

而在JS中,你遇到的所有东西几乎都是对象,那么我们来了解一下对象的细节。

1.2 对象的特征?

对象有属性,也就是对象的特征,可以通过点符号来访问一个对象的属性。

objectName.propertyName;

如果把对象比作现实中的一个球,那这个球就是一个对象,拥有属性,有颜色有大小。这些可以这样表示:

1

2

3

var ball = new Object();

ball.color = “red";

ball.size = 12;

对象还有方法,方法用于定义对象的行为方式。

比如这个球可能有滚动的方法可以计算能滚多远,有弹跳的方法可以计算跳多高。

可以这样表示:

1

2

3

ball.roll = function() {

return this.size * laps

}

1.3 访问对象的属性

前面讲过我们可以通过点符号来访问对象的属性,但如果是这样的情况,还能通过点符号访问对象的属性吗:

1

2

3

4

5

var ball = new Object();

ball.color = “red";

ball.size = 12;

var spec = “color”;

ball.spec ??

这里假设有一个变量spec,我们需要通过这个变量spec来访问对象属性。

但如果用点符号将会访问ball的spec属性然后返回一个undefined,说明这里直接将spec当做了一个属性而不是变量。

如果我们想要获得变量的值,来作为对象的属性那应该怎么做呢?

可以使用方括号标记访问,这个标记法在属性名称那里是动态判定的,这样就可以通过存储在变量中的字符串来访问属性了:

1

ball[spec]; // red

1.4 枚举对象的属性

另外我们可以通过for in循环语句来枚举对象的所有属性:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

var ball = {color: “red”, size: 12, border: 2};

for (var prop in ball) {

console.log(“ball.” + prop + “=“ + obj[prop]);

}

// ball.color = red

// ball.size = 12

// ball.border = 2

// 如果希望继承的属性不显示,那么可以用hasOwnProperty函数来过滤一遍

var bar = {a: 1, b: 2, c: 3};

function Foo() {

this.color = 'red';

}

Foo.prototype = bar;

var obj = new Foo();

for (var prop in obj) {

if (obj.hasOwnProperty(prop)) {

console.log(prop);

}

}

也可以通过Object.keys(obj)的方法来返回一个属性名集合的数组:

1

2

3

4

var obj = {a: “123”, b: “das”, c: “web”};

console.log(Object.keys(obj)); // [“a”,”b”,”c”];

var arr = [“a”, “b”, “c”];

console.log(Object.keys(arr)); // [“0”,”1”,”2”];

【推荐学习:javascript高级教程

以上就是如何理解javascript的对象的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript如何换行

如何在js中改变dom元素的文本内容

了解typescript和javascript之间的差异

javascript语言有什么特点

javascript如何设置图片时间

javascript和sql有什么区别

javascript分为哪两种数据类型

jquery获取父窗口的元素

exports和module.expors之间有什么区别及联系?

javascript如何在object中删除属性

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...