如何引用父类?

时间:2016-12-24 18:50:52

标签: javascript oop

我正在尝试用javascript练习编写面向对象的代码,但它仍然让我感到困惑。我见过其他人问过这个问题,但我还没有找到一个真正明确的答案。我有一个具有嵌套函数的属性,我想使用父类中的一个属性。

var myClass = {
	btn: document.getElementById('btn'),
	color: "#000",

	clickListener: function(){
		this.btn.addEventListener("click", function(){
			this.style.background = myClass.color;
		});
	},
}

这是我可以使它工作的唯一方法,但使用类中的类名似乎很奇怪。有没有更好的方法来做到这一点还是正常的?

1 个答案:

答案 0 :(得分:1)

附加到对象的任何函数都称为“方法”,您可以通过在方法范围中引用“this”来访问它所附加的对象。由于您位于子函数范围内,因此请存储父范围并使用它:

class HomeView extends BaseView{

    constructor(model){
        super(null, model);
    }

    _renderHTML(){
        this.$view.html(template(this.model));
        return this.$view;
    }

    _init(){
        this.$view.on("click", "#langs li", this._changeLanguage.bind(this));
    }

    _changeLanguage(){
        console.log($(this).data("lang"));
        this._renderHTML();
    }

}

评论:在Javascript中,这通常不被称为“类”,因为它是一个对象。 “类”通常是函数,您使用var myClass = { btn: document.getElementById('btn'), color: "#000", clickListener: function(){ var self = this; this.btn.addEventListener("click", function(){ this.style.background = self.color; }); }, } 创建实例。使用这样的对象通常被称为“单身人士”。