日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

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

@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 = 20 person.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上下文對象。

<script> function createPerson(name, age, gender) {//向對象中添加屬性this.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>

作用域

作用域指一個變量的作用范圍。在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); //1a = 2; console.log(a); //2}foo(); // console.log(a); //a is not defined

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。