gpt4 book ai didi

javascript - 我怎样才能覆盖 JavaScript 中的父类(super class)

转载 作者:行者123 更新时间:2023-11-30 14:50:31 25 4
gpt4 key购买 nike

我这里有一个父类(super class):

// SUPERCLASS
var toWalk = function(bottom, right, space) {
this.$node = $('<span class="walker"></span>');
this.space = space;
this.step();
this.setPosition(bottom, right);
};

toWalk.prototype.step = function() {
setTimeout(this.step.bind(this), this.space);
};

toWalk.prototype.setPosition = function(bottom, right) {
var styleSettings = {
bottom: bottom,
right: right
};

this.$node.css(styleSettings);
};

这基本上设置了一个步行 Angular 色的步行者跨度。 class walker 有自己的 CSS。现在我想要实现的是覆盖它的 CSS 以及它的位置(底部和右侧)所以我所做的是在我的新实例上我放置了一个新节点,它有一个也有自己的 CSS 的类运行器并应用实例父类(super class)的参数,但这不会覆盖我在这个新实例的父类(super class)上拥有的内容。

// SUBCLASS

var toRun = function(bottom, right, space) {
this.$node = $('<span class="runner"></span>');
toWalk.apply(this, arguments);
};


toRun.prototype = Object.create(toWalk.prototype);

toRun.prototype.constructor = toRun;

toRun.prototype.step = function() {
toWalk.prototype.step.call(this);

this.$node.toggleClass('size');

};

toWalk.prototype.setPosition = function(bottom, right) {
var styleSettings = {
bottom: bottom,
right: right
};

this.$node.css(styleSettings);
};

知道我做错了什么吗?我怎样才能同时覆盖底部和右侧等位置?

最佳答案

将子类的构造函数改成...

var toRun = function(bottom, right, space) {
toWalk.apply(this, arguments);
this.$node = $('<span class="runner"></span>');
};

请注意,我调换了顺序,因此您在 调用 super 后覆盖了 this.$node。在您声明 this.$node 然后调用构造函数(使用相同的 this)之前,它覆盖了您刚刚在 this.$node 中设置的内容

关于javascript - 我怎样才能覆盖 JavaScript 中的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48197553/

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