MongoLab HTTP API와 상호 작용할 수 있도록 작은 lib를 만들고 있지만 몇 가지 문제가 있습니다. CommonJS 모듈을 사용하고 있습니다.프로토 타입 메서드를 통해 객체의 속성을 설정하십시오.
module.exports = {
//[...]
//this will be overriden by the other models
fields: ['id'],
setFields: function(values) {
_.each(this.fields, function(field) {
this[field] = values[field]
})
}
}
그리고 I가, 예를 들어, 사용자 모델 :이
var Model = require('models/Model')
function User (properties) {
this.fields = [
'id',
'name',
'surname',
'email',
'password'
]
this.setFields(properties)
//[...]
}
의 setFields()
전화
나는 다른 모델의 프로토 타입으로 동작하도록 만들어진 모델 객체를 가지고 User 모델에 주어진 다섯 개의 필드 각각을 반복하여 올바르게 작동합니다. 사용자 속성은 설정하지 않습니다. setFields()
정의 끝 앞에 console.log(this.name)
을 추가하면 undefined
이 표시됩니다. 문제를 해결할 수있는 유일한 방법은 this
개체를 setFields
메서드의 인수로 전달하고 this
대신 인수를 사용하는 것입니다.
내게는 범위 문제가 생겼지 만 JavaScript OO에서는 여전히 새로운 편이어서 내 논리에는 어떤 문제가 있습니까?
아, 그리고 난 [Underscore.js의 각 방법] (HTTP ://underscorejs.org/#each). – igorsantos07
더 많은 코드가 필요합니다. 예를 들어, 표시된 코드에 따라'User'와'Model' 사이에는 아무런 연결도 없습니다. 또한'User'의 인스턴스는 어떻게 생성됩니까? 더 많은 코드 공유. –