function test(){
String.prototype.to_selector=function(a){return "#"+a;}
return "asd".to_selector();
}
"asd".to_selector();
이 기능 밖에서 작동하지 않길 원합니다. 그것을하는 방법? 아니면 필요한가요?함수 클로저 내에서만 객체의 프로토 타입을 적용 할 수 있습니까?
function test(){
String.prototype.to_selector=function(a){return "#"+a;}
return "asd".to_selector();
}
"asd".to_selector();
이 기능 밖에서 작동하지 않길 원합니다. 그것을하는 방법? 아니면 필요한가요?함수 클로저 내에서만 객체의 프로토 타입을 적용 할 수 있습니까?
function test(){
String.prototype.to_selector=function(a){return "#"+a;}
var o = "asd".to_selector();
delete String.prototype.to_selector;
return o;
}
아니요, 불가능합니다. 예를 들어 실제로 유용하지는 않습니다. 왜는 사용
function test(){
var to_selector = function(a){return "#"+a;};
return to_selector("asd");
}
네이티브 오브젝트 (String
여기)가 해당 개체에 대한 모든 후속 호출에 대해 할당 된 것에 대한 프로토 타입 방법을 지정합니다.
당신 진짜 String
객체에 직접하는 방법을 지정할 수 있지만 다시 난 정말이에 대한 모든 사용 사례를 볼 수 없습니다 :이 것 때문에,
var test = function(a){
var str = new String(a);
str.to_selector = function(){return "#"+this;}
return str.to_selector();
}
alert(test('asd')); //=> '#asd'
alert('bla'.to_selector()); //=> error
다른 오브젝트를 기반으로 오브젝트를 만들 때마다 원래 오브젝트 프로토 타입이 새 오브젝트에 상속됩니다. 이 [JavaScript 프로토 타입 이해에 대한 도움말] (http://javascriptweblog.wordpress.com/2010/06/07/understanding-javascript-prototypes/)이 도움이 될 수 있습니다. –
@Useless 코드 :이 주석이 질문 자체를 다루어서는 안됩니까? 나는 자바 스크립트 프로토 타입을 합리적인 정도로 이해한다고 생각한다. – KooiInc
@Kooilinc 어쩌면 그렇게; 나는 게시 할 답변과 매우 흡사하기 때문에 귀하의 게시물에있는 정보에 귀하의 정보를 추가하기 만하면됩니다. –
그것은 String
프로토 타입을 수정하여 수 없습니다를 이 함수가 실행 된 후에 작성한 String의 모든 인스턴스를 수정하십시오.
특정 기능 범위 내에서만 작동하는 기본 개체에 대한 메서드가 필요하지 않습니다. 유스 케이스 란 무엇입니까? 항상 String
객체에 정적 메서드를 추가하거나 String
프로토 타입에 인스턴스 메서드 (좋은 방법은 아니므로 마음에 듭니다)를 추가하고 test
내부에서만 사용하십시오. 다시
var string2 = function(str) {
this.str = str;
};
string2.prototype = {
to_selector: function() {
return '#' + this.str;
},
toString: function() {
return this.str;
}
};
function test(){
asd = new string2("asd");
return asd.to_selector();
}
하지만, 내가 어떻게 볼 수 없습니다 :
당신은 또한 당신이 문자열 선언에서 직접 to_selector
전화의 우아함을 잃고 있지만, 당신은 그 목적을 위해 사용할 수있는 새로운 개체를 만들 수 있습니다 전혀 편리 할 것입니다.
왜 그렇게하고 싶습니까? 그냥 "to_selector"함수를 정상적으로 정의하고 그것을 호출하십시오. –
저는 루비 (Ruby) 사용자이고, .to_selector()를 사용하는 많은 함수에서 그것을 재사용하기위한 실제 객체 방법을 원합니다. 잘못해서 문제를 진술 해 주셔서 죄송합니다. @Sergi가이 작업을 실제로 수행해야한다고 생각했습니다. – wizztjh