国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS面向對象、prototype、call()、apply()

2024-05-06 14:15:29
字體:
來源:轉載
供稿:網友
一、 起因
那天用到prototype.js于是打開看看,才看幾行就滿頭霧水,原因是對js的面向對象不是很熟悉,于是百度+google了一把,最后終于算小有收獲,寫此紀念一下^_^。
prototype.js代碼片段
代碼如下:
var Class = {
create: function() {
return function() {
this.initialize.apply(this , arguments);
}
}
}
// Class使用方法如下
var A = Class.create();
A. prototype={
initialize:function(v){
this .value=v;
}
showValue:function(){
alert(this.value);
}
}
var a = new A(‘helloWord!');
a. showValue();//彈出對話框helloWord!

l initialize是什么?
l apply方法是干什么的?
l arguments變量呢?
l 為什么new A后就會執行initialize方法?
尋找答案:
二、 Js的面向對象
initialize是什么?
只不過是個變量,代表一個方法,用途是類的構造函數。
其具體功能靠js的面向對象支持,那么js的面向對象是什么樣子的那?和java 的有什么相同與不同?
看代碼:
代碼如下:
var ClassName = function(v){
this.value=v;
this.getValue=function(){
return this.value;
}
this.setValue=function(v){
this.value=v;
}
}

那么JS中的函數和類有什么不同呢?
其實是一樣的,ClassName就是一個函數,當出現在new后面的時候就作為一個構造函數來構造對象。

代碼如下:
var objectName1 = new ClassName(“a”);//得到一個對象

其中objectName1就是執行ClassName構造函數后得到的對象,而在ClassName函數中的this指的就是new之后構造出來的對象,所以objectName1會后一個屬性和兩個方法。可以通過這樣來調用他們:
代碼如下:
objectName1.setValue(''hello'');
alert(objectName1.getValue());//對話框hello
alert(objectName1.value) ;//對話框hello

那么
代碼如下:
var objectName2 = ClassName(“b”);//得到一個對象

這樣objectName2得到的是什么呢?顯然是方法的返回值,這里ClassName只作為了一個普通的函數(雖然首字母大寫了)。但是在之前寫的ClassName中并沒有返回值,所以objectName2會是undifinded那么“b”賦給誰了呢?在這并沒有產生一個對象,而只是單純的執行這個方法,所以這個“b”賦值給了調用這個方法的對象window,證據如下:
var objectName2 = ClassName(“b”);//得到一個對象
alert(window.value);//對話框b
所以JS中的所有function都是一樣的,但是用途可能是不同的(用作構造對象抑或是執行一個過程)。
下面該回到主題了initialize是干什么的?
代碼如下:
var Class = {
create: function() {
return function() {
this.initialize.apply(this , arguments);
}
}
}
var A = Class.create();

這段代碼是構造個一個function復制給A,這個function是
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 屯昌县| 日喀则市| 靖西县| 远安县| 永春县| 象山县| 朝阳区| 新建县| 安康市| 印江| 石泉县| 来宾市| 丹寨县| 沭阳县| 绥棱县| 定西市| 南充市| 永新县| 高雄县| 周口市| 玉门市| 宜春市| 城固县| 绩溪县| 兴文县| 孟村| 兴海县| 闻喜县| 方正县| 临海市| 沛县| 民和| 那曲县| 潮安县| 高邮市| 吉水县| 马尔康县| 永平县| 视频| 佛学| 灵丘县|