我在JS中有一组get函数,例如:
get UserName() {
return this.userModel.Name;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在调用该函数之前检查该函数是否存在。我试过了:
if (this.UserName == 'function')...
Run Code Online (Sandbox Code Playgroud)
但它始终为false,因为它userModel.name是一个字符串,typeof UserName返回的是“字符串”类型,而不是“函数”。
你知道我怎么能做到这一点吗?
检查UserName存在(不调用getter)的一种简单方法是使用in:
if ('UserName' in this) {
// this.UserName is defined
}
Run Code Online (Sandbox Code Playgroud)
如果您需要更严格的检查来直接访问getter函数,请使用Object.getOwnPropertyDescriptor:
var userNameDesc = Object.getOwnPropertyDescriptor(this, 'UserName');
if (userNameDesc && userNameDesc.get) {
// this.UserName is definitely a getter and is defined
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |