0

를 추가하지 나는 내 응용 프로그램에 다음 코드가 : 나는 angularjs-rails-resource gem 사용하고자바 스크립트 프로토 타입 방법

app.factory('User', ['railsResourceFactory', '$http', function (railsResourceFactory, $http) { 
    var res = railsResourceFactory({url: '/users', name: 'user'}); 

    res.prototype.hello = function() { 
     return "hello"; 

    }; 

    debugger; 

    return res; 
}]); 

합니다. 나는 크롬 디버거를 명중하고 나는 콘솔에서 다음을 입력하면 :

res.hello() 

내가 얻을 :

TypeError: Object function RailsResource(value) { angular.extend(this, value || {}); } has no method 'hello' 

나는 이런 일이 왜 모르겠어요. 나는 Prototype에 대해 근본적으로 이해하지 못할 수도 있으므로 새로운 자바 스크립트입니다. 아니면 각도 나 난간 문제 일 수 있습니다.

감사

답변

0

프로토 타입 속성은, 함수 .. 첫 번째 근본적인 문제는 자신이 물어 만 사용할 수 있습니다

railsResourceFactory({url: '/users', name: 'user'}); 

반환 함수/생성자를합니까? 아니 그렇지 않아. 자원 오브젝트를 리턴합니다. 고전적인 OOP 언어에서 온 경우 프로토 타입 속성은 클래스에서만 사용할 수 있으며 객체에서는 사용할 수 없다고 말할 수 있습니다. 현재 다루고있는 객체의 프로토 타입에 계속 액세스하려면

object.constructor.prototype 

를 호출하여 그것은 그래서 당신은

res.constructor.prototype.hello= function() { 
     return "hello"; 

    }; 
를 호출하여 당신이 달성하려고하는 무엇을 달성 할 수
관련 문제