자바 스크립트에는 두 가지 패턴이 있으며, 하나를 사용하는 것의 이점과 다른 것을 사용하는 것이 장점입니다.반환 함수와 반환 객체
var returnFunction = function(name,age){
var n = name;
var a = name;
return function(){
anotherFunc : function(){},
oneMoreFunc : function(){}
}
}
내가 private 변수 이름과 나이에 두 가지 이상의 기능을 포함하는 기능 및 액세스를 반환 : 예를 들어, 함수를 반환 대 객체를 반환의 차이점은 무엇입니까. returnfunction을 호출 할 수 있다는 것을 알고 있으며, 생성자처럼 사용할 수 있다는 것을 알고 있습니다. 성능 저하가 있습니까
var returnObject = function(name,age){
var n = name;
var a = age;
return {
anotherFunc:function(){},
oneMoreFunc:function(){},
};
}
- : 나는 대이 스타일의 장점이 무엇인지 알고 싶어?
- 스타일에 불과합니까?
- 하나 또는 다른 혜택이 있습니까 아니면 그냥 이것을 overthink 오전?
편집 : 옵션 A와 관련하여
, 내가 자바 스크립트에서이 특정 구문을 참조했다 : A는이 구문을 복제하는 의미 인위적인 예였다 좋은 부품
Function.prototype.method = function(name, func) {
this.prototype[name] = func;
return this;
};
String.method('deentityify', function() {
// The entity table. It maps entity names to
// characters.
var entity = {
quot: '"',
lt: '<',
gt: '>'
};
// Return the deentityify method.
return function() {
// This is the deentityify method. It calls the string
// replace method, looking for substrings that start
// with '&' and end with ';'. If the characters in
// between are in the entity table, then replace the
// entity with the character from the table. It uses
// a regular expression (Chapter 7).
return this.replace(/&([^&;]+);/g,
function(a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
);
};
}());
옵션 .
당신이 반환 된 객체에 개입을하려는 경우
는하지만, 옵션 A를하는 것보다 더 나은, 그리고, 그것은 그것을 클래스를 만들기 위해 단지 더 좋아 'functions'는'object'를 호출하는 것보다 더 많은 자원을 항상 먹습니다. –
첫 번째 작동하지 않습니다. 아무것도하지 않고 두 개의 함수를 더 정의하고 버리는 함수를 반환합니다. –
@ NicholasHazel 함수가 객체에 있다면? – Julio