JS 函式內部同名物件

2021-06-20 21:55:06 字數 834 閱讀 3465

許多的js包中,都有這樣的一種結構:

(function() 

box.width = function(x) ;

box.height = function(x) ;

return box;

};})();

好像是一種傳統,從github上面找到的開源**裡面,都是這種結構。讓我們來花幾分鐘的時間,解讀一下。

(function() )();
上面**的含義是:建立乙個匿名函式,並且執行這個函式。所以,在乙個js文件中,如果看到了,這段**,直接忽略為執行裡面的**就得了。

關鍵是下面的幾行**:

var box = function() 

box.width = function(x) ;

box.height = function(x) ;

return box;

};

在函式box裡面,又定義了乙個函式物件box (第6行),這個物件函式還有屬性:width和height,為什麼要這樣?

目的是為了在呼叫外面的box(第1行)的時候,返回的是裡面的box函式(第6行),直接呼叫裡面的box。如下:

var chart = box()

.width(width)

.height(height);

在呼叫box()的時候返回裡面的box函式物件,後執行裡面box函式的width函式和height函式。

這是一種習慣,可以將乙個物件中的資料,以另外一種方式呈現在呼叫它的上下文中。僅此而已。

JS中同名函式有效執行順序

html中如果出現函式同名時 如果有多個外部引入的js檔案,例如a.js和b.js 引入順序假定是a.js,然後是b.js 同時html中本身也有內部的js.那麼針對 出現函式名一樣的情況時,無論他們是否傳遞的引數一樣還是不一樣,返回值是否相同,都認為是乙個函式,所以js 處理時,最後呼叫的函式f是...

JS中常用的內部物件

常用的js內部物件有11個 array boolean date function global math number object regexp error以及string array物件 提供對建立任何資料型別的陣列的支援。arrayobj new array arrayobj new arr...

js 函式 物件

函式的宣告 function 關鍵字 function 函式名 形參 表示式方式 var 函式名 function 形參 var 函式名 new function 參1 jscode 呼叫函式 加括號是呼叫 不加括號是引用該函式 js函式特點 可用重複定義 如果沒有返回值 預設返回undefined...