Emmachen / SapUi5Test

1 stars 1 forks source link

sap.ui.XX是拿来做什么的,为什么API文档查不到? #7

Open ghost opened 8 years ago

ghost commented 8 years ago

调试的时候一直有一个metadata出来,然后还有就是有一个困惑,比如像sap.ui.base.ManagedObjectMetadata,这种是怎么来的呢,还有像其他的一些sap.ui.xxx.xxx,API文档里都没有。

Jerry will answer it.

ghost commented 8 years ago

answer by Jerry

文心,这个问题不用太深究。分析思路如下:

你问的sap.ui.XX这些东西是什么,为什么API文档查不到。

首先,sap.ui.XX这些东西都是UI5 framework internal的实现,和sap.m.Button这些不同,不是用来给application developer用的,所以API文档你查不到(我没去试过哈)

比如sap这个object,实际就是全局变量window的一个属性而已,你可以通过sap === window.sap 返回true的结果来confirm这一点认识。 clipboard2 clipboard1

那么下一个问题: sap.ui的这种object,是什么时候,通过什么方式append到全局变量window上去呢?

我们在sap-ui-core-dbg.js的第一行代码设断点,此时发现window.sap已经存在了,证明我们断点设得太晚了。 clipboard3

然后再换成非debug版本,这个时机就合适了: clipboard4 clipboard5

例如我们想研究sap.ui.Device是什么时候填充的,直接通过关键字搜索直接阅读源代码就行了: clipboard6 clipboard7 比如window.sap.ui.Device._update 这个function是什么时候被fill的?内容如何? clipboard8

通过关键字搜索: clipboard9