七、深入JavaScript函数,对象和作用域(三)
发布日期:2021-07-01 02:05:44 浏览次数:2 分类:技术文章

本文共 2293 字,大约阅读时间需要 7 分钟。

@Author:Runsen

@Date:2020/5/26

作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件。导致翘课严重,专业排名中下。.在大学60%的时间,都在CSDN。决定今天比昨天更加努力。

文章目录

函数

函数:就是将一些功能或语句进行封装,在需要的时候,通过调用的形式,执行这些语句。函数就是工具,写成函数看起来比较高大上。

比如,下面的sayHello函数。

console.log("Runsen,你好");sayHello();	// 调用函数// 定义函数function sayHello(){
console.log("欢迎,Runsen"); console.log("welcome");}

因此,在

function 函数名([形参1,形参2...形参N]){
// 备注:语法中的中括号,表示“可选” 语句... }

比如下面的求和函数

function sum(a,b){
return a+b;}var result=sum(2,3);console.log(result);//输出5

对象

在JavaScript中, 一切皆是对象,函数也可以用一个对象来代表:Function,我们可以使用Function来创建对象:

创建自定义对象最简单的方式就是创建一个Object实例, 然后添加属性和方法

/ 1.创建person的对象var person = new Object()// 2.给person对象赋值了一些动态的属性和方法person.name = "Runsen"person.age = 20person.height = 65person.sayHello = function () {
alert("Hello, My name is " + this.name)}// 3.调用方法, 查看结果person.sayHello()

但是如果需要创建多个对象,应该使用工厂方法创建对象,大批量的创建对象,其实就是定义一个函数

/* * 使用工厂方法创建对象 *  通过该方法可以大批量的创建对象 */function createPerson(name, age, gender) {
//创建一个新的对象 var obj = new Object(); //向对象中添加属性 obj.name = name; obj.age = age; obj.gender= gender; obj.sayHello = function() {
console.log("Hello, My name is " + this.name); }; //将新的对象返回 return obj;}var obj2 = createPerson("Runsen的朋友", 20, "男");obj2.sayHello();var obj3 = createPerson("Runsen的兄弟", 20, "男");obj3.sayHello();var obj4 = createPerson("Runsen以后的女朋友", 20, "女");obj4.sayHello();

但是上面创建的对象都是Object这个类型,就导致无法区分出多种不同类型的对象。因此,最好的方法就是使用this上下文对象。

作用域

作用域指一个变量的作用范围。在js中,一共有两种作用域:

  • 全局作用域

  • 函数作用域

全局作用域

在全局作用域中:

  • 创建的变量都会作为window对象的属性保存。

  • 创建的函数都会作为window对象的方法保存。

全局作用域中的变量都是全局变量,在页面的任意的部分都可以访问的到。

var carName = " Volvo"; // 此处可调用 carName 变量function myFunction() {
// 函数内可调用 carName 变量}

局部作用域

变量在函数内声明,变量为局部作用域。

局部变量:只能在函数内部访问。

// 此处不能调用 carName 变量function myFunction() {
var carName = "Volvo"; // 函数内可调用 carName 变量}

参考菜鸟教程

下面是我的总结;

在function内部, 加var的是局部变量, 不加var的则是全局变量;

在function外部, 不管有没有使用var声明变量,都是全局变量,在function外部,var关键字一般可以省略,但是为了书写规范和维护方便以及可读性好,一般不建议省略var关键字。

例子

var a = 1; function foo() {
console.log(a); a = 2; // 此处的a相当于window.a } foo(); console.log(a); //打印结果是2

如果在function内部, 加var

function foo() {
var a = 1; console.log(a); //1 a = 2; console.log(a); //2 } foo(); // console.log(a); //a is not defined

转载地址:https://maoli.blog.csdn.net/article/details/106351349 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:八、深入JavaScript的条件语句和循环语句(四)
下一篇:六、最通俗易懂的JavaScript进阶教程(二)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月15日 03时57分41秒