用变量覆盖if语句

时间:2019-03-11 14:43:26

标签: javascript if-statement override

以下代码是主题中的现有功能:

function WShare( selector ) {
    var $this = $( selector ), $parent = $this.parent();
    var opt = {
        url: window.location,
        text: document.title,
    };
    if ( window.selectedText ) {
        opt.text = window.selectedText;
    }
    if ( $parent.attr( 'data-sharing-url' ) !== undefined ) {
        opt.url = $parent.attr( 'data-sharing-url' );
    }
}

我想做的是在if语句中将opt.text更改/交换为opt.url,将opt.url更改/交换为opt.text

其背后的原因是,在后续的JS中,这两个元素需要交换。 替代此方法的最佳方法是什么?

1 个答案:

答案 0 :(得分:-1)

仅保存变量值,然后重新分配对象属性值?可能是最直观易读的方式

    var opt = {
        url: 'test1',
        text: 'test2',
    };

    var x = 1;
    
    if (x === 1) {
      var url_var = opt.url;
      var text_var = opt.text;
      opt.url = text_var;
      opt.text = url_var;
    }

    console.log(opt);