七、深入JavaScript函数,对象和作用域(三)
@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ì)象都是Object這個(gè)類型,就導(dǎo)致無(wú)法區(qū)分出多種不同類型的對(duì)象。因此,最好的方法就是使用this上下文對(duì)象。
作用域
作用域指一個(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)題。
- 上一篇: 朋友们,谁可以说说柏尔定制地板环保吗?
- 下一篇: 八、深入JavaScript的条件语句和