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

歡迎訪問 生活随笔!

生活随笔

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

javascript

深入浅出javascript(二)函数和this对象

發布時間:2024/9/21 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出javascript(二)函数和this对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、函數對象的屬性和方法

函數是一種數據類型,也是對象,這一點很明確。因此,函數對象也可以添加屬性方法,但是這里的屬性和方法是靜態的,之所以這樣說,就是為了區別構造函數。

示例如下:

①創建一個空的函數對象circle

function circle() //定義一個空函數circle(),也可以稱為建立函數對象circle; { }

②為此函數對象添加屬性和方法:

function circle() //定義一個空函數circle(),也可以稱為建立函數對象circle; { } circle.radius=10; //添加半徑屬性 circle.area=function() //添加求面積方法area; {alert(circle.radius*circle.radius*3.14); } alert(circle.radius); //靜態使用函數對象circle的屬性; circle.area(); //靜態調用函數對象circle的方法;

例子說明:即使函數沒有被調用,也可以訪問到函數對象的屬性和方法(靜態)

2017-04-18?16:35:32?補充:

在函數體內也可以添加屬性,但是這種屬性必須在函數調用之后才能使用。

二、函數作為構造函數(this特權方法)

函數作為構造函數屬性必須用this。 上面例子說明:函數對象的屬性和方法是它本身所具有的,似乎和通過它創建的對象“一點關系都沒有”。

舉例說明:

var a=new circle(); //將circle()作為構造函數創建一個對象; alert(a.radius); //企圖訪問構造函數對象的屬性?結果undefined..

構造函數的正確用法:

function circle(r) //定義帶參數的構造函數 {this.radius=r; //半徑屬性this.area=function() //求面積方法area; {return (this.radius*this.radius*3.14);} }var a=new circle(20); //創建對象; alert(a.area()); //調用方法;

很多書本上的解釋是這樣的:先創建一個空對象,然后再將此對象代入構造函數,做為this進行匹配,聽起來也很合理。

2017-04-18?16:52:37 補充:

假如沒有實例化對象和構造函數綁定,那么構造函數里面的this指的是誰呢?其實,這里的this指的是window對象!

特權方法:有權訪問私有變量和私有方法的方法。

?

三、公用方法

問題引出:通過構造函數創建對象會出現一個問題:產生的對象會各自占拷貝一份方法,這樣會有點浪費。而在C++中,代碼是共享的一份。

所有的Javascript函數均具有一個名為prototype的屬性,此屬性引用了(構造函數的)原型對象。初始時原型對象為空,但是原型對象添加屬性和方法后,能夠被實例化的對象繼承。

補充:prototype添加的方法稱為:公共方法

function f(name) //構造函數 {this.name=name; } f.prototype.showName=function() //通過原型prototype添加一個方法,此方法為共享。 {document.write(this.name); }var apple=new f("apple"); //生成apple對象; apple.showName();var orange=new f("orange"); //生成orange對象; orange.showName();alert(apple.showName()==orange.showName());//完全相同,返回true

?

轉載于:https://www.cnblogs.com/tinaluo/p/6669413.html

總結

以上是生活随笔為你收集整理的深入浅出javascript(二)函数和this对象的全部內容,希望文章能夠幫你解決所遇到的問題。

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