JavaScript中的函數有兩個不同的角色:
1-它們作爲您在第二個塊中使用的函數。 2-可以將它們用作類來創建對象,就像您在第一個塊中使用它們一樣。
同樣的功能將作爲不同的手段,例如:
var display = new displayValue();
意味着你要根據你的等級(功能)來創建一個對象,因爲你已經使用new
關鍵字,也是display
由於var display = new displayValue();
不是一個函數,它是一個JavaScript對象,你可以得到你的道具如下:display.a
或display.b
。但是,當用它像一個方法:
displayValue('1','one');
這種方式,它僅僅是被調用的函數,在這裏最重要的一點是this
在此功能將指向函數的容器對象,大多是你的頂級課程或window
對象。 in your function: function displayValue(a,b){this.a = a; this.b = b; $('p')。text(a +「」+ b); } 當你做this.a = a;
,主要是它意味着你要使用它作爲一個類或作爲一個頂級類的方法,例如:
function Display(){
this.displayValue=function displayValue(a,b){
this.a = a;
this.b = b;
$('p').text(a + " " + b);
}
}
或
function Display(){
//the constructor
}
Display.prototype.displayValue = function displayValue(a,b){
this.a = a;
this.b = b;
$('p').text(a + " " + b);
};
在此
例如,如果您嘗試var obj = new Display();
,則this
中的關鍵字displayValue
函數將指向Display
的當前實例,即obj
。
你正在運行它兩次,看到誰調皮或好,但函數不返回一個函數,並且你沒有在第一次調用中傳遞參數,只是第二次調用,誰沒有真正調用任何東西因爲第一次調用返回對象,所以聖誕老人今晚不會來。 – adeneo
做得好:golfclap: – Pointy