JavaScript函数中的可选参数

时间:2019-01-09 10:53:27

标签: javascript

我有一个共同的职能:

function getUrl() { return Xrm.Page.context.getClientUrl() + "/api/data/v9.0/"; }

但是有时我需要使用父框架来获取网址,例如:

function getUrl() { return window.parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/"; }

如果需要的话,我可以声明此通用函数通过window.parent.吗? 如果未传递参数,则使用通用实现。

1 个答案:

答案 0 :(得分:0)

只需使用一个参数:

function getUrl(_use_parent){
    let url;
    if(_use_parent)
       url = window.parent.Xrm.Page.context.getClientUrl();
    else 
       url = Xrm.Page.context.getClientUrl();

    return url + "/api/data/v9.0/";
}

如果仅调用getUrl(),则_use_parent是未定义的,因此它将使用else语句。

[edit]如果您真的想通过window.parent

function getUrl(_window_parent){
    let url;
    if(_window_parent)
       url = _window_parent.Xrm.Page.context.getClientUrl();
    else 
       url = Xrm.Page.context.getClientUrl();

    return url + "/api/data/v9.0/";
}

但是,如果_window_parent不是正确的对象,则可能会出现JavaScript错误。