let dispNameExt = () => {
console.log(this.name);
};
class MyName {
constructor() {
this.name = 'lsr';
}
dispName() {
dispNameExt();
}
}
如何使这段代码工作,在类的这个中,通过类外部的外部方法访问。
答案 0 :(得分:4)
let dispNameExt = (model) => {
console.log(model.name);
};
class MyName {
constructor() {
this.name = 'lsr';
}
dispName() {
dispNameExt(this);
}
}
答案 1 :(得分:2)
由于您正在为dispNameExt
使用箭头功能,我认为唯一的方法是将this
值作为参数传递给函数。
let dispNameExt = (thisValue) => {
console.log(thisValue.name);
};
但如果您将其更改为使用普通function
,则有几种方法可以在函数内指定this
的值。
function dispNameExt() {
console.log(this.name);
}
class MyName {
constructor() {
this.name = 'lsr';
}
dispName() {
// Using .apply()
dispNameExt.apply(this);
// Using .call()
dispNameExt.call(this);
// Using .bind()
dispNameExt.bind(this)();
}
}
答案 2 :(得分:0)
它应该被重构为静态道具。无需实例化类即可访问。
由于name
属性名称is reserved,必须选择另一个属性名称。
let dispNameExt = () => {
console.log(MyName.title);
};
class MyName {
static get title() {
return 'lsr';
}
dispName() {
dispNameExt();
}
}