用变量覆盖if语句

问题描述 投票:0回答:1

以下代码是主题中的现有函数:

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.textopt.urlopt.urlopt.text

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

javascript if-statement override
1个回答
-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);
© www.soinside.com 2019 - 2024. All rights reserved.