2013-07-12 4 views
1

Fiddle!!프로토 타입의 인스턴스를 여러 개 가져 오는 방법은 무엇입니까?

내가 colorBox의 인스턴스의 무리를 할 수있는 시스템을 구축하기 위해 노력하고, 나는 여기에서 box 이름이있다. box.resetColor('blue');과 같은 작업을 수행 한 후에 새 colorBox의 스타일을 변경할 수 있기를 원하는 경우를 제외하고는 모든 것이 올바르게 작동합니다.이를 테스트하려면 vodoo이라는 단순한 함수를 작성했습니다. 그러나 colorBox가 객체가 아닌 함수이기 때문에 box.vodoo()을 호출 할 수 없습니다.

colorbox의 인스턴스 묶음을 가지려면 box의 모든 속성 (원하는 것만)을 업데이트하지 않고도 개별적으로 개별적으로 업데이트 할 수있는 가장 좋은 방법은 무엇입니까?

JS :

var colorBox = function(node, options) { 
    this.setSize = function(){ 
     node.style.width = options.width + 'px'; 
     node.style.height = options.height + 'px'; 
    }; 
    this.setColor = function(){ 
     node.style.backgroundColor = options.color; 
    }; 
    this.setSize(); 
    this.setColor(); 
    vodoo(){ 
     alert('vodoo'); 
    } 
} 

var node = document.getElementById('thing1'); 
var options = { 
    color: 'red', 
    width: 200, 
    height: 200 
} 

var box = new colorBox(node, options); 
box.vodoo(); 
+2

var colorBox = function(node, options) { this.setSize = function(){ node.style.width = options.width + 'px'; node.style.height = options.height + 'px'; }; this.setColor = function(){ node.style.backgroundColor = options.color; }; this.setSize(); this.setColor(); this.voodoo = function(){ alert('voodoo'); } } 

또한, JS에서 함수 객체는 Object 객체의 자손이다, 그래서 자신의 속성과 같은 사용할 수 있습니다이 변경이 작동됩니다 오류를 코드에 선언하려면 함수를 선언해야합니다. function vodoo() {alert ('vodoo'); } – Givi

+2

[** debug ** JavaScript 방법에 대해 자세히 알아보십시오.] (http://www.netmagazine.com/tutorials/javascript-debugging-beginners). –

+1

''colorBox가 객체가 아닌 함수이기 때문에''javascript 함수는 Function 데이터 유형의 객체입니다. – Givi

답변

1

http://jsfiddle.net/K8cha/5/

난 당신이 여기에 무엇을하려고 오해 될 수 있지만, 당신이 부두를 선언 한 방식에 구문 오류가 있습니다. 등, 당신은 구문이

관련 문제