JavaScript 基础知识--对象

Posted 我来看烟花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 基础知识--对象相关的知识,希望对你有一定的参考价值。

既然是面向对象编程,那么什么是对象呢?这篇文章将向大家介绍javascript 对象:

JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。

在 JavaScript 中,对象是拥有属性和方法的数据。

属性和方法

属性是与对象相关的值。

方法是能够在对象上执行的动作。

举例:汽车就是现实生活中的对象。

汽车的属性:

car.name=Fiat

car.model=500

car.weight=850kg

car.color=white 

汽车的方法:

car.start()

car.drive()

car.brake()

汽车的属性包括名称、型号、重量、颜色等。

所有汽车都有这些属性,但是每款车的属性都不尽相同。

汽车的方法可以是启动、驾驶、刹车等。

所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同。

JavaScript 中的对象

在 JavaScript 中,对象是数据(变量),拥有属性和方法。

当您像这样声明一个 JavaScript 变量时:

var txt = "Hello";

您实际上已经创建了一个 JavaScript 字符串对象。字符串对象拥有内建的属性 length。对于上面的字符串来说,length 的值是 5。字符串对象同时拥有若干个内建的方法。

属性:

txt.length=5

方法:

txt.indexOf()

txt.replace()

txt.search()

在面向对象的语言中,属性和方法常被称为对象的成员。

创建 JavaScript 对象

JavaScript 中的几乎所有事务都是对象:字符串、数字、数组、日期、函数,等等。

你也可以创建自己的对象。

创建新对象有两种不同的方法:

  1. 定义并创建对象的实例
  2. 使用函数来定义对象,然后创建新的对象实例

创建直接的实例

这个例子创建了对象的一个新实例,并向其添加了四个属性:

实例

person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

替代语法(使用对象 literals):

实例

person=firstname:"John",lastname:"Doe",age:50,eyecolor:"blue";

使用对象构造器  (Swift中的便利构造器怎么写的来着??)

本例使用函数来构造对象:

实例

function person(firstname,lastname,age,eyecolor)

this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

创建 JavaScript 对象实例

一旦您有了对象构造器,就可以创建新的对象实例,就像这样:

var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");

把属性添加到 JavaScript 对象

您可以通过为对象赋值,向已有对象添加新属性:

假设 personObj 已存在 - 您可以为其添加这些新属性:firstname、lastname、age 以及 eyecolor:

person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

x=person.firstname;

在以上代码执行后,x 的值将是:

Bill

把方法添加到 JavaScript 对象

方法只不过是附加在对象上的函数。

在构造器函数内部定义对象的方法:

function person(firstname,lastname,age,eyecolor)

this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

this.changeName=changeName;
function changeName(name)

this.lastname=name;


changeName() 函数 name 的值赋给 person 的 lastname 属性。

现在您可以试一下:

myMother.changeName("Ballmer");

访问对象的属性

访问对象属性的语法是:

objectName.propertyName

本例使用 String 对象的 length 属性来查找字符串的长度:

var message="Hello World!";
var x=message.length;

在以上代码执行后,x 的值是:

12

访问对象的方法

您可以通过下面的语法调用方法:

objectName.methodName()

这个例子使用 String 对象的 toUpperCase() 方法来把文本转换为大写:

var message="Hello world!";
var x=message.toUpperCase(); //(这方法的调取和Swift一样呀!)

在以上代码执行后,x 的值是:

HELLO WORLD!

在面向对象的语言中,使用 camel-case(驼峰命名法) 标记法的函数是很常见的。您会经常看到 someMethod() 这样的函数名,而不是 some_method()。

看完后是不是直呼"这和OC一样呀!",没错!这些面向对象的语言,对象的定义都是一样的,所以,是不是感觉学习JS很轻松呢?但是,需要注意下面这个知道点:

JavaScript 类

1.JavaScript 是面向对象的语言,但 JavaScript 不使用类。

2.在 JavaScript 中,不会创建类,也不会通过类来创建对象。

3.JavaScript 基于 prototype,而不是基于类的。


JavaScript for...in 循环

JavaScript for...in 语句循环遍历对象的属性。注意:读取对象的所有属性,这在ios中是黑魔法呀!for..in在JS中这么强大,不再是那个我们认识的遍历数组的for..in啦!

语法

for (对象中的变量)
  
  要执行的代码
  

注释:for...in 循环中的代码块将针对每个属性执行一次。

实例

循环遍历对象的属性:

var person=fname:"Bill",lname:"Gates",age:56;

for (x in person)
  
  txt=txt + person[x];
  


以上是关于JavaScript 基础知识--对象的主要内容,如果未能解决你的问题,请参考以下文章

驼峰命名,帕斯卡命名,短横线命名

Javascript回顾

Python 基础入门 6_1 类与对象

JavaScript 语法:语法约定与程序调试

javascript里的基础语法数据类型以及类型转换

[Java基础]面向对象