2014-06-09 1 views
4

내가이자바 스크립트

var student = function() { 
    this.id = 1; 
    this.Name = "Shohel"; 
    this.Roll = "04115407"; 
    this.Session = "03-04"; 
    this.Subject = "CSE"; 
}; 

같은 자바 스크립트 객체를 가지고 내가 학생으로 학생을 밀어하려면 지금이

var students = []; 

같은 자바 스크립트 배열 목록을 작성 목적, 이것은

아래와 같습니다
students.push(new student()) //no prolem 

students.push(new student[id = 3]) //Problem 

여기 두 번째 줄에 예외가 발생합니다. 어떻게 C#과 같은 자바 스크립트 개체를 밀어 넣을 수 있습니까? 두 번째 라인을 나타내는? 감사

+1

그래서 당신은 무엇을 기대하고 전달하는 jQuery를 사용합니까? – adeneo

+0

학생을 밀어 넣을 때 학생의 기본값을 설정하고 싶습니다. – Shohel

+0

값을 객체 클래스에 전달할 방법을 제공하지 않았습니다. – PeterKA

답변

8

당신은 단순히 수 없습니다 , 당신이 생각 할 수있는 것은, 당신의 생성자에 매개 변수로 설정을 승인하고이

var student = function (config) { 
       config = config || {}; 
       this.id = config.id || 1; 
       this.Name = config.Name || "Shohel"; 
       this.Roll = config.Roll || "04115407"; 
       this.Session = config.Session || "03-04"; 
       this.Subject = config.Subject || "CSE"; 
      }; 

처럼 읽고이

students.push(new student({id: 3})); 

편집과 같이 호출 ONE

바람직하다

기본값 인 ||을 회피하려는 경우 adeneo처럼 지적 할 수 있습니다. 당신은 괄호가있는 함수를 호출하고 괄호하지하려고 할 때 그들을

var student = function (config) { 
        var defaults = { 
         id: 1, 
         Name: "Shohel", 
         Roll: "04115407", 
         Session: "03-04", 
         Subject: "CSE" 
        }; 
        config = $.extend(defaults, config || {}); 
        this.id = config.id; 
        this.Name = config.Name; 
        this.Roll = config.Roll; 
        this.Session = config.Session; 
        this.Subject = config.Subject; 
       }; 
+0

이 답변을 기다리고있었습니다 ...) +1 – Reigel

+1

sidenote로, 당신은 그 못생긴 OR의 대부분을 제거 할 수 있습니다'config = config || {id : 1, Name : 'Shohel'...}' – adeneo

+0

@adeneo별로 ... 각 속성이 지정되지 않는 한. OP의 샘플에는 'id' 속성 만 설정되어 있습니다. – canon

관련 문제