편집 :MyConstructorFunc.prototype
을 '_.extend()'에 전달했습니다.Underscorejs가 개체로 함수를 변경합니다.
Underscore를 사용하여 함수를 확장하려고 할 때 흥미로운 구현 세부 사항에 접했습니다.
var MyConstructorFunc = function() {
...
}
내가 함수 생성자를 내장
,
는 내가 다시있어typeof MyConstructorFunc == "object"
이었다 무엇
return _.extend(MyConstructorFunc.prototype, {
\\ ...some properties...
}
의 결과를 반환! _.extend
이 function
에 속성을 병합하는 경우 object
을 반환하는 이유는 무엇입니까?
_.extend = function(obj) {
if (!_.isObject(obj)) return obj;
var source, prop;
for (var i = 1, length = arguments.length; i < length; i++) {
source = arguments[i];
for (prop in source) {
if (hasOwnProperty.call(source, prop)) {
obj[prop] = source[prop];
}
}
}
return obj;
};
내가 MyConstructorFunc["someProp"] = someObject["someProp"]
한다면 ... 그런 일이 어디 볼 수 없어 _.extend
기능을 살펴보면 및 return MyConstructorFunc
, 나는 자바 스크립트 object
을 반환? 내가 뭔가를 누락
...
이 오류를 재현 할 수 없습니다. 'MyConstructorFunc' 함수의 내용과 전달할 객체를'_.extend' 함수에 게시 할 수 있습니까? –
'_.isFunction (_. extends (MyConstructorFunc, {...}))'의 결과가'true'를 리턴 했습니까? – seebiscuit