2013-07-16 46 views
6

Nếu tôi có mã:Chức năng định nghĩa bên trong chức năng

function A() { 

    function B() { 

    } 

    B(); 

} 

A(); 
A(); 

được chức năng B phân tích và tạo ra mỗi khi tôi gọi A (để nó có thể làm giảm hiệu suất của A)?

+0

Tại sao bạn sẽ cần điều đó? :) –

+0

Tôi muốn nói có bởi vì hàm B chỉ tồn tại trong phạm vi chức năng A – DarkBee

+0

Tại sao bạn không thực hiện hàm B bên ngoài A và gọi B bên trong A? –

Trả lời

2

Nếu bạn chỉ muốn sử dụng chức năng trong nội bộ, cách đóng. Dưới đây là một ví dụ

var A = (function() { 
    var publicFun = function() { console.log("I'm public"); } 
    var privateFun2 = function() { console.log("I'm private"); } 

    console.log("call from the inside"); 
    publicFun(); 
    privateFun2(); 

    return { 
     publicFun: publicFun 
    } 
})(); 

console.log("call from the outside"); 
A.publicFun(); 
A.privateFun(); //error, because this function unavailable 
2
function A(){ 

    function B(){ 

    } 
    var F=function(){ 
     B(); 
    } 
    return F; 
} 
var X=A(); 
//Now when u want to use this just use this X function it will work without parsing B() 
Các vấn đề liên quan