A. javascript構造函數時function中可以再套function嗎
可以的,javascript中的function可以當成類來用。
在function內部,用var來定義私有變數,這種變數只能在function內部使用。function內部按通常的方法定義的function,也是私有的,只能在內部使用。
而用this.varname來定義的變數,時公有的。
寫了個簡單的例子灶凳,你看看應該就明白了。
--------------------------------------
<螞山script type="text/javascript">
function testFunction() {
var var1; //定義private變數
this.var2 = 'haha'; //這樣定義的是public變數
//下面的是private函悶辯中數
function func1(text) {
alert(text);
}
//下面這樣就成了public函數
this.func2 = function(text) {
func1(text);
}
}
var test = new testFunction();
var msg = 'typeof(testFunction) = ' + typeof(testFunction);
msg += '\r\n' + 'typeof(test) = ' + typeof(test);
msg += '\r\n' + 'typeof(test.var1) = ' + typeof(test.var1);
msg += '\r\n' + 'typeof(test.var2) = ' + typeof(test.var2);
msg += '\r\n' + 'typeof(test.func1) = ' + typeof(test.func1);
msg += '\r\n' + 'typeof(test.func2) = ' + typeof(test.func2);
alert(msg);
test.func2(test.var2);
</script>
----------------------------------------------------------------------
B. 在javascript中Function和function有什麼區別
Function是一個構造函數,用於動態構建一個函數。
function是關鍵字,通過function生成的函數實際上是一個Function對象實例
C. javascript 的 "!function" 是什麼意思
!function跟(function(){... })();函數意義相同,叫做立即運行的匿名函數(也叫立即調用函數)。
js中可以這樣創建一個匿名函數:
(function(){dosomething...})()
//或
(function(){dosomething...}())
而匿名函數後面的小括弧()是為了讓匿名函數立即執行,其實就是一個函數調用。
這樣寫會報錯:
function(){alert(1)}()
因為function前面沒有(或者! ~之類的運算符,js解析器會試圖將關鍵字function解析成函數聲明語句,而不是函數定義表達式。
作為組運算符,小括弧()會將其內部的表達式當成一個整體,然後返回結果,所以定義一個匿名函數正確的格式就是用小括弧將函數體括起來。
同樣的! ~ + -等運算符也有同樣的效果,這是因為匿名函數也是一種值,這些運算符會將後面的函數體當成一個整體,先對匿名函數進行求值,然後在對結果進行運算。
不過這些運算符雖然能夠達到讓匿名函數立即執行的目的,但是要小心他們是有副作用的,比如:
!function() {return1}()//false
~function() {return1}()//-2
-function() {returnfalse}()//0
-function() {returnfalse}()//0
沒錯,他們會對函數的返回值進行運算,這樣可能會導致最終的結果和你想要的結果不一樣。當然,對於那些沒有返回值的函數來說,當然是沒有什麼影響了。
(3)javascriptfunction擴展閱讀:
匿名函數的調用:
var abc=function(x,y){
return x+y;
}
alert(abc(2,3)); // "5"
上面的操作其實就等於換個方式去定義函數,這種用法是我們比較頻繁遇到的。
例如我們在設定一個DOM元素事件處理函數的時候,我們通常都不會為他們定名字,而是賦予它的對應事件引用一個匿名函數。
使用()將匿名函數括起來,然後後面再加一對小括弧(包含參數列表)。
alert((new Function("x","y","return x*y;"))(2,3));// "6"
參考資料來源:網路-JavaScript
D. JavaScript中function定義函數的幾種方法
/*第一種方法,使用function語句,格式如下*/<br>function fn(){<br>alert("這是使用function語句進行函數定義");<br> }<br>fn();<br><br>/*第二種方法,使用function()構造函數克隆函數*/<br>var f = new function("a","b","alert(a+b)");<br> f(a,b);<br>其實相當於如下代碼:<br>function f(a,b){<br>alert(a+b);<br> }<br>/*第三種方法,使用函數直接量*/<br>var zhenn = function(){<br>alert("zhenn");<br> }<br> zhenn();
E. javascript 中函數 function什麼作用
js中用function來定義函數,起作用和Java中的方法類似。
function functionname()
{
這里是要執行的代碼
}
當調用該函數時,會執行函數內的代碼。
可以在某事件發生時直接調用函數(比如當用戶點擊按鈕時),並且可由 JavaScript 在任何位置進行調用。
F. javascript中: (function(){})();如何理解
javascript中: (function(){})()是匿名函數,主要利用函數內的變數作用域,避免產生全局變數,影響回整體頁面環境,增加代答碼的兼容性。
(function(){})是一個標準的函數定義,但是沒有復制給任何變數。所以是沒有名字的函數,叫匿名函數。沒有名字就無法像普通函數那樣隨時隨地調用了,所以在他定義完成後就馬上調用他,後面的括弧()是運行這個函數的意思
(6)javascriptfunction擴展閱讀
函數聲明:使用function聲明函數,並指定函數名。
function setFn() { // coding }
函數表達式:使用function聲明函數,但未指定函數名,將匿名函數賦予一個變數。
var setFn = function() { // coding}
匿名函數:使用function關鍵字聲明函數,但未指定函數名。匿名函數屬於函數表達式,匿名函數有很多作用,賦予一個變數則創建函數,賦予一個事件則成為事件處理程序或創建閉包等等。
function() { // coding}
G. javascript中的function用法
var asd=new Class("a");//你能new得出來?你new的對象就不是一個類你怎麼去new?
繼承的話專
給你個例子屬
var Class = function (cfg) {
this.side = function () {
alert(this.name || "");
};
}
var p = function(){
this.name = "p";
}
p.prototype = new Class();
new p().side();