日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

七、深入JavaScript函数,对象和作用域(三)

發(fā)布時(shí)間:2024/10/8 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 七、深入JavaScript函数,对象和作用域(三) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

@Author:Runsen
@Date:2020/5/26

作者介紹:Runsen目前大三下學(xué)期,專業(yè)化學(xué)工程與工藝,大學(xué)沉迷日語(yǔ),Python, Java和一系列數(shù)據(jù)分析軟件。導(dǎo)致翹課嚴(yán)重,專業(yè)排名中下。.在大學(xué)60%的時(shí)間,都在CSDN。決定今天比昨天更加努力。

文章目錄

  • 函數(shù)
  • 對(duì)象
  • 作用域
    • 全局作用域
    • 局部作用域
    • 例子

函數(shù)

函數(shù):就是將一些功能或語(yǔ)句進(jìn)行封裝,在需要的時(shí)候,通過(guò)調(diào)用的形式,執(zhí)行這些語(yǔ)句。函數(shù)就是工具,寫(xiě)成函數(shù)看起來(lái)比較高大上。

比如,下面的sayHello函數(shù)。

console.log("Runsen,你好"); sayHello(); // 調(diào)用函數(shù)// 定義函數(shù) function sayHello(){console.log("歡迎,Runsen");console.log("welcome"); }

因此,在

function 函數(shù)名([形參1,形參2...形參N]){ // 備注:語(yǔ)法中的中括號(hào),表示“可選”語(yǔ)句...}

比如下面的求和函數(shù)

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

對(duì)象

在JavaScript中, 一切皆是對(duì)象,函數(shù)也可以用一個(gè)對(duì)象來(lái)代表:Function,我們可以使用Function來(lái)創(chuàng)建對(duì)象:

創(chuàng)建自定義對(duì)象最簡(jiǎn)單的方式就是創(chuàng)建一個(gè)Object實(shí)例, 然后添加屬性和方法

/ 1.創(chuàng)建person的對(duì)象 var person = new Object()// 2.給person對(duì)象賦值了一些動(dòng)態(tài)的屬性和方法 person.name = "Runsen" person.age = 20 person.height = 65person.sayHello = function () {alert("Hello, My name is " + this.name) }// 3.調(diào)用方法, 查看結(jié)果 person.sayHello()


但是如果需要?jiǎng)?chuàng)建多個(gè)對(duì)象,應(yīng)該使用工廠方法創(chuàng)建對(duì)象,大批量的創(chuàng)建對(duì)象,其實(shí)就是定義一個(gè)函數(shù)

/** 使用工廠方法創(chuàng)建對(duì)象* 通過(guò)該方法可以大批量的創(chuàng)建對(duì)象*/ function createPerson(name, age, gender) {//創(chuàng)建一個(gè)新的對(duì)象var obj = new Object();//向?qū)ο笾刑砑訉傩詏bj.name = name;obj.age = age;obj.gender= gender;obj.sayHello = function() {console.log("Hello, My name is " + this.name);};//將新的對(duì)象返回return obj; }var obj2 = createPerson("Runsen的朋友", 20, "男"); obj2.sayHello(); var obj3 = createPerson("Runsen的兄弟", 20, "男"); obj3.sayHello(); var obj4 = createPerson("Runsen以后的女朋友", 20, "女"); obj4.sayHello();


但是上面創(chuàng)建的對(duì)象都是Object這個(gè)類型,就導(dǎo)致無(wú)法區(qū)分出多種不同類型的對(duì)象。因此,最好的方法就是使用this上下文對(duì)象。

<script> function createPerson(name, age, gender) {//向?qū)ο笾刑砑訉傩詔his.name = name;this.age = age;this.gender = gender;this.sayHello = function() {console.log("Hello, My name is " + this.name);};}var obj2 = new createPerson("Runsen的朋友", 20, "男"); obj2.sayHello(); var obj3 = new createPerson("Runsen的兄弟", 20, "男"); obj3.sayHello(); var obj4 = new createPerson("Runsen以后的女朋友", 20, "女"); obj4.sayHello(); </script>

作用域

作用域指一個(gè)變量的作用范圍。在js中,一共有兩種作用域:

  • 全局作用域

  • 函數(shù)作用域

全局作用域

在全局作用域中:

  • 創(chuàng)建的變量都會(huì)作為window對(duì)象的屬性保存。

  • 創(chuàng)建的函數(shù)都會(huì)作為window對(duì)象的方法保存。

全局作用域中的變量都是全局變量,在頁(yè)面的任意的部分都可以訪問(wèn)的到。

var carName = " Volvo";// 此處可調(diào)用 carName 變量 function myFunction() {// 函數(shù)內(nèi)可調(diào)用 carName 變量 }

局部作用域

變量在函數(shù)內(nèi)聲明,變量為局部作用域。

局部變量:只能在函數(shù)內(nèi)部訪問(wèn)。

// 此處不能調(diào)用 carName 變量 function myFunction() {var carName = "Volvo";// 函數(shù)內(nèi)可調(diào)用 carName 變量 }

參考菜鳥(niǎo)教程

下面是我的總結(jié);

在function內(nèi)部, 加var的是局部變量, 不加var的則是全局變量;
在function外部, 不管有沒(méi)有使用var聲明變量,都是全局變量,在function外部,var關(guān)鍵字一般可以省略,但是為了書(shū)寫(xiě)規(guī)范和維護(hù)方便以及可讀性好,一般不建議省略var關(guān)鍵字。

例子

var a = 1;function foo() {console.log(a);a = 2; // 此處的a相當(dāng)于window.a}foo();console.log(a); //打印結(jié)果是2

如果在function內(nèi)部, 加var

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

總結(jié)

以上是生活随笔為你收集整理的七、深入JavaScript函数,对象和作用域(三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。