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 中的几乎所有事务都是对象:字符串、数字、数组、日期、函数,等等。
你也可以创建自己的对象。
创建新对象有两种不同的方法:
- 定义并创建对象的实例
- 使用函数来定义对象,然后创建新的对象实例
创建直接的实例
这个例子创建了对象的一个新实例,并向其添加了四个属性:
实例
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 基础知识--对象的主要内容,如果未能解决你的问题,请参考以下文章