codecamp

Change Signature重构

Change Signature重构

使用Change Signature(更改签名)重构更改函数名称,添加,删除,重新排序和重命名参数,以及通过调用层次结构传播新参数。

以下示例显示了运行Change Signature重构的不同方法。在所有情况下,函数result()都重命名为generate_result(),并且向此函数添加了一个新参数input。这些示例显示了函数调用,调用函数(show_result())和其他代码片段如何受到影响,具体取决于重构设置。

示例1:重命名函数,添加参数,并通过函数调用传递其值

在此示例中,函数result()重命名为generate_result(),添加参数input,并将值100作为函数调用中的参数传递。

function result() {
}

function show_result() {
    alert('Result: ' + result());
}
function generate_result(input) {
}

function show_result() {
    alert('Result: ' + generate_result(100));
}

示例2:重命名函数并添加默认参数

在此示例中,函数result()重命名为generate_result()。随值100添加默认参数input。新参数以ES6语言级别的function generate_result(input = 100) {}格式或ES5的input = input || 100格式在generate_result()中进行初始化。 

function result() {
}

function show_result() {
    alert('Result: ' + result());
}
function generate_result(input = 100) {
}

function show_result() {

    alert('Result: ' + generate_result());
}

示例3:重命名函数,添加默认参数,并将参数传播到函数调用

在此示例中,函数result()重命名为generate_result()。随值100添加默认参数input。新参数以ES6语言级别的“function generate_result(input = 100) {}”格式或 ES5的“input = input || 100”格式在generate_result()中进行初始化。该input参数通过调用函数show_result()传播,因此函数调用会相应更改。

function result() {
}

function show_result() {
    alert('Result: ' + result());
}
function generate_result(input = 100) {
}

function show_result() {

    alert('Result: ' + generate_result());
}

调用Change Signature

  • 在编辑器中,将光标放在要重构的函数名称中,然后按Ctrl+F6,或在上下文菜单或主菜单上选择:Refactor|更改签名。“更改签名”对话框将打开。

重命名函数

  • 在“更改签名”对话框(Ctrl+F6)中,编辑“名称”字段。

管理函数参数

  • 在“更改签名”对话框(Ctrl+F6)中,使用参数表和右侧的按钮:
    • 要添加新参数,请单击图标一般添加svg (Alt+Insert)并指定新参数的名称及其默认值或要通过函数调用传递的值。
    • 要删除参数,请单击相应行中的任何单元格,然后单击图标一般删除svg (Alt+Delete)。
    • 要重新排序参数,请使用图标动作previousOccurence svg (Alt+Up)和 图标动作nextOccurence svg (Alt+Down)。
    • 要重命名参数,请编辑“名称”字段。
    • 如有必要, 将新参数传播到调用当前函数的函数。

沿调用层次传播参数

  1. 在“更改签名”对话框 (Ctrl+F6)中,选择参数并单击propagateParameters。将打开“选择传播新参数的方法”对话框。左侧窗格显示函数调用的层次结构。当您选择一个函数时,右侧窗格将分别显示其代码以及它在Caller Method和Callee Method字段中调用的函数的代码。
  2. 在左侧窗格中,选中要传播参数的函数旁边的复选框,然后单击“确定”。

预览更改并完成重构

  1. 在“更改签名”对话框(Ctrl+F6)中,单击“预览”。
  2. 在“查找”工具窗口的“重构预览”选项卡中 , 查看预期的更改,进行必要的调整,然后在准备好后单击“执行重构”。
Inline重构
IntelliJ IDEA集成:Spy-js
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }