JavaScript 对象
JavaScript 对象是拥有属性和方法的数据。类似 Object-c 的类对象。
真实生活中的对象,属性和方法
真实生活中,一辆汽车是一个对象。
对象有它的属性,如重量和颜色等,方法有启动停止等:
property | method |
---|---|
car.name = Fiat | car.start() |
car.model = 500 | car.stop() |
car.weight = 850kg | car.drive() |
car.color = white | car.brake() |
所有汽车都有这些属性, 但是每款车的属性都不尽相同。
所有汽车都拥有这些方法, 但是它们被执行的时间都不尽相同。
JavaScript 对象
在所有面向对象的计算机语言中,几乎所有的事物都是对象,JavaScript也不例外。
在 JavaScript 中,对象是非常重要的,当你理解的面向对象的思想,就可以了解JavaScript。
我们可以通过 JavaScript 变量的赋值,为JavaScript对象赋值。
//以下代码为变量 car 设置值为 "Fiat" :
var car = "Fiat";
//对象也是一个变量,但对象可以包含多个值(多个变量)。
var car = {type:"Fiat", model:500, color:"white"};
在以上实例中,3 个值 (“Fiat”, 500, “white”) 赋予变量 car。
在以上实例中,3 个变量 (type, model, color) 赋予变量 car。
JavaScript 对象是变量的容器。
对象定义
你可以使用字符来定义和创建 JavaScript 对象:
var person = {fristName : "Jerry", lastName : "Doe", age : 25, eyeColor : "blue"};
其中 定义JavaScript对象可以跨越多行, 空格跟换行不是必须的。
对象属性
可以说 “JavaScript 对象是变量的容器”。
但是,我们通常认为”JavaScript”对象是键值对的容器。
键值对通常写法为 ** key : value** (键与值以冒号分割),键值对的存在。
类似的键值对的写法类似于:
- PHP 中的关联数组
- OC/Swift 中的字典
- C 语言中的哈希表
- Java 中的哈希映射
- Ruby 和 Perl 中的哈希表
访问对象属性
你可以通过两种方式访问对象属性:
person.lastName;
person[lastName];
JavaScript函数
函数是由事件驱动或者当它被调用时执行的可重复使用的代码块。
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function functionName (){
//执行代码
}
当调用改函数时,会执行函数内的代码。
可以再某件事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
JavaScript 对大小写敏感。关键词function 必须是小写的,并且必须以函数名称相同的大小写开调用函数。
调用带参数的函数
在调用函数时, 可由向函数传递值,这些值被称为参数。
这些参数可以在函数中使用。
可以发送任意多的参数,由逗号(,)分隔
myFunction(argument1, argument2)
当声明函数时,请把参数作为变量来声明:
function myFunction(var1, var2){
//代码
}
示例
<button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
<script>
function myFunction(name,job){
alert("Welcome " + name + ", the " + job);
}
</script>
带有返回值的函数
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时, 函数会停止执行,并返回指定的值。
function myFunction()
{
var x=5;
return x;
}
注意: 整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。 函数调用将被返回值取代:
var myVar = myFunction()
myVar 变量的值是 5,也就是函数 “myFunction()” 所返回的值。 即使不把它保存为变量,也可以使用返回值:
document.getElementById("demo").innerHTML=myFunction();
局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用var)是局部变量,所以只能在局部访问他。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。 只要函数运行完毕,本地变量就会被删除。
全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。 这条语句:
carname="Volvo";
将声明一个全局变量 carname,即使它在函数内执行。