小编Kri*_*zzu的帖子

在React中使用refs有什么不好的做法?

我正在学习React.不同网站的一些人告诉大家,使用refs是一种不好的做法(是的,完全使用它们).

什么是真正的处理?我将它附加到例如子组件(所以我可以访问内部的东西)是不是很糟糕?

谢谢!

javascript refs reactjs

9
推荐指数
1
解决办法
4824
查看次数

ES6类与ES5风格有多大差异?

我就是那种需要深入了解一切的人......所以,我一直在经历许多教学科目,并且我已经深入了解原型继承.
我清楚地了解它在ES5中是如何工作的(每个函数都有这个特殊的原型属性,它指向它所基于的对象.这个对象有.constructor属性,它指向函数等).

那么,现在让我们看一下ES5示例:

function Bunny(name) {
    this.name = name
}

Bunny.prototype.sayName = function() {
    console.log('Im',this.name)
}
Run Code Online (Sandbox Code Playgroud)

这个很清楚:函数Bunny得到的参数name将分配给一个新对象.

下一行将函数添加到函数的原型中,该函数将返回当前名称.

我们现在看看ES6课程:

class Fox{
    constructor(name){
        this.name = name;
    }

    sayName() {
        console.log('Im', this.name)
    }
}
Run Code Online (Sandbox Code Playgroud)

同样的东西:Constructor这就像我们的兔子功能.但sayName在狐狸和sayName兔子不一样.
让我们创建实例:

let bunny = new Bunny('Henry');
let fox = new Fox('Jerry');
Run Code Online (Sandbox Code Playgroud)

现在,检查他们的原型:

console.log(Object.getPrototypeOf(bunny))
console.log(Object.getPrototypeOf(fox))
Run Code Online (Sandbox Code Playgroud)

我们得到了什么?

//using repl.it - ES6
{ sayName: [Function] }
{}
Run Code Online (Sandbox Code Playgroud)

这是为什么?

我想这可能是因为我们sayName直接在Bunny的原型上设置了功能.所以我把它改成了这个:

function Bunny(name) {
    this.name = name

    //Warning - Bad practice ahead! …
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance ecmascript-6

4
推荐指数
1
解决办法
170
查看次数

为什么我的静态构造函数只执行一次?

当我static在班上有一个字段时:

public static int Counter = 0;
Run Code Online (Sandbox Code Playgroud)

使用static构造函数:

static Class() { 
    Counter++; 
}
Run Code Online (Sandbox Code Playgroud)

当我创建这个类的对象并检查Class.Counter它显示我1是正确的.

但是当我创建同一个类的另一个对象时,Class.Counter仍然存在1.

这是为什么?

c# static static-members

-4
推荐指数
1
解决办法
416
查看次数