有一个对象A:function A(){ this.Avar = 'hello';}A.prototype.breadcrumb = { push: function(){ console.info(this.Avar); }};var a = new A();我想添加一个breadcrumb对象,使用new A().breadcrumb.push,但是打印出来的this是{push: ...}对象,而不是A对象,我该怎么改造让他读的是A对象的上下文?
4 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
function A() {
this.Avar = 'hello'
}
A.prototype.breadcrumb = function() {
const ctx = this
return {
push: function() {
console.log(ctx.Avar)
}
}
}
new A().breadcrumb().push()
慕侠2389804
TA贡献1719条经验 获得超6个赞
在不依赖实例的情况下是有方法的。
不过不确定你的需求是什么,如果仅仅是个链式操作可以这样。
"use strict";
function A(){
this.Avar = 'hello';
}
A.prototype.breadcrumb = function() {
return {
push: () => {
console.log(this.Avar);
}
};
};
new A().breadcrumb().push(); // 'hello'
米脂
TA贡献1836条经验 获得超3个赞
function A(){
this.Avar = 'hello';
var self = this;
this.breadcrumb = {
push:function(){
console.log(self.Avar);
}
};
}
var aa = new A();
aa.breadcrumb.push();
添加回答
举报
0/150
提交
取消