ScriptInclude作成するときやGrideAjaxで非同期実装するときに暗黙的に 使用されている
Class.create()
やObject.extendsObject()
が何をしているのか?以下はServiceNowドキュメントより引用
var GetUserInfo = Class.create(); GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, { managerName: function() { //処理(割愛) }, type: 'GetUserInfo'
- 上記ソースコードの1行目
var GetUserInfo = Class.create();
- 左辺の変数に空のobjectを作成(クラスタイプでいう空のクラス新規作成)
- 上記ソースコードの2行目
GetUserInfo.prototype = Object.extendsObject~
prototype.jsについて
- Class.create()は
prototype.js
のメソッド。- prototype.jsはJSにクラスベースっぽく書くための構文を
補完したりするフレームワーク Class.create
でクラス作成、Object.extend
でクラス継承というようにメソッドを提供している
- prototype.jsはJSにクラスベースっぽく書くための構文を
まとめ
- ServiceNowのGlideAjaxによる非同期処理は prototype.js+AbstractAjaxProcessorで実装している
参照サイト
- ソースコード引用
Prototype JavaScript framework: a foundation for ambitious web applications
- prototype.jsドキュメント
Question related to Object.extendsObject() - ServiceNow Community
- Object.extendsObject()メソッドの元ネタ
- Q.Object.extendsObject()がprototype.jsのドキュメントにないよおしえて
- A.prototypeJS Class.createのラッパーメソッドだよ or ServieNowのカスタマイズされたメソッドだよ
- 有志による情報交換のサイト(SreviceNow Community)なので正当性は取捨選択する必要がある
- ServiceNow公式ドキュメントよりニッチな情報も拾えるので合わせて調べるといいかも