[英]correct way to format a javascript function
快一點......
什么是格式化javascript函數的正確方法?
我這樣看:
function doThis(){
}
和這樣:
doThis = function(){
}
或許它沒有任何區別。 請讓我知道什么是最好的,或者他們都有不同的rasons或目的。
干杯
C
它們是兩個不同的東西,雖然它們都創建了一個函數(並將其賦值給變量)。
function name () {
}
是函數語句 (或“函數聲明”)。 它是唯一合法的出現為頂級腳本元素或直接作為函數的元素:即,它是不合法的函數聲明內部的出現if
,或while
,等所有功能聲明“提升“到函數(或腳本)的頂部,因此以下是有效的:
a()
function a () { alert("a") }
形式如下:
variable = function name () {} // or variable = function () {}
function關鍵字位於函數表達式上下文中:它創建一個新的函數對象,並將得到的函數對象(只是一個“正常值”)賦給variable
。 以下內容無效,因為函數表達式未被提升。
var b
b() // oops, does not evaluate to a function-object yet!
b = function b () { alert("b") }
所有這一切,“正確的方法”是使用函數聲明(“函數聲明”)形式,除非有理由不這樣做。
快樂的編碼。
也可以看看:
這些語法之間存在重要且有用的區別。
在OOP中,使用封裝非常有用,封裝是一種限制對其他對象的訪問的機制。 javascript中公共和私有變量/函數之間的區別可以這樣說:
function Color(value)
{
// public variable
this.value = value; // get from arguments
// private variable
var _name = "test";
// public function
this.getRandomColor = function( )
{
return Math.random() * 0xFFFFFF;
}
// private function
function getNiceColor()
{
return 0xffcc00;
}
}
可以訪問顏色實例中的公共變量和函數:
// create instance of Color
var color = new Color(0xFF0000);
alert( color.value ); // returns red color
alert( color.getRandomColor() ); // returns random color
無法從color-instance訪問私有變量和函數:
var color = new Color(0x0000FF);
alert( color.getNiceColor() ); // error in console; property does not exist, because function is private.
alert( color._name ); // error in console; property does not exist, because variable is private.
注意
在使用公共函數時使用好的原型可能會更好,因為這種編碼方法可能會導致繼承問題。
查看[1]中的前10-15張幻燈片,他們談論這個
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.