있습니다. 이런 식으로 뭔가를 할 수있는 방법이 있다면 궁금해하던가요?자바 스크립트 기능이 작동 코드 하위 기능/변수를
var test = {
this: function()
{
console.log(test.data);
},
data: 'hello',
set: function (data)
{
test.data = data;
}
};
있습니다. 이런 식으로 뭔가를 할 수있는 방법이 있다면 궁금해하던가요?자바 스크립트 기능이 작동 코드 하위 기능/변수를
var test = {
this: function()
{
console.log(test.data);
},
data: 'hello',
set: function (data)
{
test.data = data;
}
};
내 의견에 말했듯이 "호출 가능"개체를 만들 수 없습니다.
function extend(func, props) {
for(var prop in props) {
if(props.hasOwnProperty(prop)) {
func[prop] = props[prop];
}
}
return func;
}
을 다음과 전화 : 당신은 그러나 첫 번째 예에서 프로세스를 자동화 할 수 있습니다 말했다
var test = extend(function(){
console.log(test.data);
},
{
data: 'hello',
set: function (data) {
this.data = data; // note that I changed it to `this.data`
}
});
, 난 당신이 같은 기능을 사용하지한다고 생각합니다 그. "정상적인"개체를 갖고 있고 obj()
대신에 모든 메서드를 obj.method()
으로 호출하면 이해하기가 더 쉽습니다.
최소한이 사실을 매우 신중하게 기록해야합니다.
'hasOwnProperty' 호출은 어디에 있습니까? ;) –
@Ivo Wetzel : 음, 어쨌든 평범한 객체 만 전달할 것이라고 가정했지만 ... 그렇습니다 ... Object.prototype'의 확장 ... bla bla ... (언젠가 그들이 내장을 만들길 바란다. 프로토 타입 ** 확장 가능하지 않습니다!) ... 고정 :) –
그건 좋은 일이지만, 나는 그들이 그렇게 할 것입니다 의심 : / –
개체의 속성에 모든 기능을 저장할 수 있습니다. 그리고 그들을 호출 할 수 있습니다 :
let f = { fun1: function()
{
return 1;
}
};
f.fun1();
완벽하게 작동 할 것입니다. 나는 이것이 키워드이기 때문에 당신이 'this'를 속성 이름으로 사용할 수 있는지 확신하지 못한다. 아마도 문제는 아니지만 오도 된 것일 수 있습니다.
실제로 두 번째 예제는 의사 코드와 비슷했습니다. – Ragnis
어떻게 이런 식으로 뭔가를하고 약 :
function Test() {
this.data = 'hello';
this.set = function (data)
{
test.data = data;
}
this.log = function()
{
console.log(test.data);
}
}
var test = new Test();
test.set('Test');
test.log();
이 쉽게 새로운 인스턴스를 만들 수있는 장점이있다.
var test = {
log: function()
{
console.log(test.data);
},
data: 'hello',
set: function (data)
{
test.data = data;
}
};
test.set('Test');
test.log();
그러나 아마 귀하의 질문에 어떻게 피하기 된 ".LOG"부분을 : 당신은 단지 일회성를 원하는 경우
, 나는 당신의 자신의 제안을 당신이 원하는 것을 거의 말할 것인가?
함수는 객체이지만 객체는 함수가 아닙니다. 물론 객체 속성으로 함수를 저장할 수 있지만 일반 객체를 "호출 가능"으로 만들 수는 없습니다. 또는 실제로 달성하고자하는 것은 무엇입니까? 두 번째 방법의 이점은 무엇입니까? –
그냥 test() 함수를 사용하여 test.this() 함수를 호출하고 싶습니다. – Ragnis
@ Felix 요점을 놓치고 있다고 생각합니다. 저는 모든 정보를 캡슐화하려고 노력 중이며 더 깔끔하고 체계적인 접근 방법을 사용하고 있다고 생각합니다. – xil3