안녕하세요, 저는이 질문이 여러 번 요청되었지만 너무 많은 의견과 주장이 있다는 것을 압니다. 나는 답을 검증 할 수있는 최고의 경험이 없으므로 내가 찾는 것을 설명하고 아마도 올바른 방향으로 나를 가리킬 수있을 것이다. 나는 몇 가지 방법으로 객체를 생성 한 내 응용 프로그램에서 자바 스크립트 객체와 속성 확장하기
, 그들 대부분은과 같이 미리 정의 된 기본 값 세트를 가지고 :module.exports = {
submit: function(options) {
var defaults = {
_id: 1453,
text: 'Some text',
dataObj:{
links: 3532,
arr: ['James','Paul','Lina'],
},
dims:{
width: getClientWidth(),
height: getClientHeight()
}
}
options.extend(defaults);
return sendData(defaults);
}
// other similar methods - functions
};
을 내가 속성과 특성을 확장하는에 관심이 있어요 기본 로컬 변수 중 하나. 보시다시피 기본값은 복잡한 구조화 된 객체입니다. 옵션 구조는 훨씬 더 복잡 할 수 있습니다. 따라서 내가 잘못하지 않는다면 간단한 얕은 병합/복사가 이상적이지 않을 수도 있습니다. 당신이 상상할 수있는
사용법 :
var app = {
// stuff
}
app.fn = require('common/lib.js');
app.initialize(function(){
var settings = {
// hell here
}
app.fn.submit(settings)
})
은 사전에 감사합니다.
추신. 어떤 라이브러리도 사용되지 않고 어떤 식 으로든 extend() 함수의 순수한 자바 스크립트 구현에 관심이 있습니다.
당신이 NodeJS를 사용하거나 브라우저에서 실행중인 :
options = extend(true, defaults, options);
설정 객체는이 제대로 기본값의 상단에 병합됩니다 다음과 같을 수 있을까? 어쨌든'options.extend (true, defaults);''deep copy '플래그를 설정하십시오. 편집 : 적어도 여러 권의 라이브러리에 필요합니다. 귀하의 확장 기능이 어디서 오는지 확실하지 않습니다. – Hless
나는이 라이브러리를 사용하지 않는다. 이것은 appcelerator 프로젝트이다. 나는 일하고 있는데, 나는 순수한 자바 스크립트 솔루션을 찾고있다. – Syd