Openerp js 코드 분석 계승 부분
instance.web.Class.extend = function() { var _super = this.prototype; var args = _.toArray(arguments); // args.unshift({}); var prop = _.extend.apply(_,args); // underscore , args prop 。 initializing = true; var prototype = new this(); // , 。 initializing = false; for (var name in prop) { // args , , , this._super prototype[name] = typeof prop[name] == "function" && fnTest.test(prop[name]) ? (function(name, fn) { return function() { var tmp = this._super; this._super = _super[name]; var ret = fn.apply(this, arguments); this._super = tmp; return ret; }; })(name, prop[name]) : prop[name]; }
다음, Class. prototype = prototype;이렇게 해서 대상 상속 을 마 쳤 다.
function Class() { if (!initializing && this.init) { var ret = this.init.apply(this, arguments); if (ret) { return ret; } } } Class.constructor = Class;
이 안에서 클래스 의 구조 함 수 를 실현 했다. 이 게임 은 실제 적 으로 계승 할 수 없 지만 그 는 init 함 수 를 호출 하여 그 효과 에 도달 하면 init 함수 도 하위 클래스 의 구조 함수 의 작업 을 충당 할 수 있다.코드 예:
var Person = instance.web.Class.extend({ init: function(isDancing){ this.dancing = isDancing; }, dance: function(){ return this.dancing; } });
openerp 에 있 는 js 가 backbone. js 의 기능 을 많이 모방 한 것 같 습 니 다. 또한 'underscore' 를 많이 사 용 했 고 '$. Deferred () 대상' 도 많이 사 용 했 습 니 다. 이 건 참고 하 셔 야 합 니 다.
http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
사실 이 코드 도 복잡 하지 않 아 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.