2012-06-13 43 views
0

我是新来的面向对象的编程在JavaScript中,我试图了解我正在工作的项目中的一些功能。如何运行嵌套的javascript函数?

我将如何调用/运行内部函数(列出'this.getFieldset = function(){')来执行?

function Fieldset() { 

    this.id = ""; 
    this.content = document.createElement("DIV"); 
    this.content.id = "content"; 
    this.title = "Title"; 

    this.getFieldset = function() { 

     var div = document.createElement("DIV"); 
     div.id = this.id; 
     var span = document.createElement("SPAN"); 
     var fieldset = document.createElement("DIV"); 
     fieldset.id = "fieldset"; 
     var header = document.createElement("DIV"); 
     header.id = "header"; 
     span.appendChild(document.createTextNode(this.title)); 
     header.appendChild(span); 
     div.appendChild(header); 
     div.appendChild(this.content); 
     div.appendChild(fieldset); 

     return div; 
    } 
} 

var myFieldset = new Fieldset(); 
myFieldset.getFieldset(); 
+0

我建议通过[MDN阅读 - 有工作对象(https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Working_with_Objects)。 –

+1

你想从哪里执行它? – Sebas

回答

6

首先,你应该创建Fieldset一个实例,然后你就可以调用它的函数(称为方法):

var myFieldset = new Fieldset(); 

myFieldset.getFieldset(); 
+0

我想在运行这个时候会让我推测myFieldset.getFieldset()会运行哪个是创建一个DIV,SPAN等。不是说要超出范围,但不应该写入页面? – fakeguybrushthreepwood

+1

@ peteskiii:不,您不要在任何地方附加创建的“div”。它由'getFieldset'返回,所以用它做点什么;) –

+0

但是当我运行这段代码时,什么都没有发生,我在对象检查器中没有看到任何东西? – fakeguybrushthreepwood

0
function Fieldset() { 

    this.id = ""; 
    this.content = document.createElement("DIV"); 
    this.content.id = "content"; 
    this.title = "Title"; 

    this.getFieldset = function() { 

     var div = document.createElement("DIV"); 
     div.id = this.id; 
     var span = document.createElement("SPAN"); 
     //var fieldset = document.createElement("DIV"); 
     //fieldset.id = "fieldset"; 
     var header = document.createElement("DIV"); 
     header.id = "header"; 
     span.appendChild(document.createTextNode(this.title)); 
     header.appendChild(span); 
     div.appendChild(header); 
     div.appendChild(this.content); 
     div.appendChild(fieldset); 

     window.alert("test"); 

     return div; 
    } 

    //add call to run function 
    this.getFieldset(); 

} 
+0

我认为他的意思是从外部执行。 –

+0

既然他没有暗示,我没有假设。你知道他们对假设的看法。 –

+0

我试图更新代码示例以更好地显示我正在尝试实现的内容。 – fakeguybrushthreepwood