gpt4 book ai didi

javascript - 将方法设为静态有什么好处吗?

转载 作者:数据小太阳 更新时间:2023-10-29 05:57:21 25 4
gpt4 key购买 nike

我正在使用 Webstorm 并编写了一个 React 组件,我的代码如下所示:

async onDrop( banner, e ) {
banner.classList.remove( 'dragover' );
e.preventDefault();

const file = e.dataTransfer.files[ 0 ], reader = new FileReader();
const { dispatch } = this.props;

const result = await this.readFile( file, reader );

banner.style.background = `url( ${ result } ) no-repeat center`;
dispatch( addLayer( file ) );

return false;
}


@isImage( 0 )
readFile( file, reader ) {
reader.readAsDataURL( file );

return new Promise( function ( resolve, reject ) {
reader.onload = ( event ) => resolve( event.target.result );
reader.onerror = reject;
} );
}


onDragOver( banner ) {
banner.classList.add( 'dragover' );
return false;
}

Webstorm 的代码检查提示我 onDragOver 方法的 Method can be static。我的问题是:

将方法设为静态是否有任何真正的好处,或者这个建议不知何故毫无用处?

最佳答案

是的,调用静态函数时不需要对象的实例。您所需要的只是对构造函数的引用:

class Foo {
static bar() { console.log("foo"); }
}

Foo.bar(); // outputs "foo" to console

任何地方都不需要 new Foo()

按照惯例,当您实际需要来自实例的状态(读取状态或写入状态)时,应使用实例方法。

检查会告诉您,当您的原型(prototype)/类方法中没有 this(因此不需要实例)时。

关于javascript - 将方法设为静态有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35040595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com