gpt4 book ai didi

javascript 基础对象用不同的方法创建另外两个对象

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

多年来我一直在研究 javascript,但现在我正努力认真起来。学习,并进入对象。

我想创建一个基础对象,并用它来创建另外 2 个略有不同的对象。

我认为这会起作用:

function movingObject(x, y, z){
this.x = x;
this.y = y;
this.z = z;
}

var positiveMover = new movingObject(x, y, z);
positiveMover.prototype.move = function(a, b){
yadda yadda
}

var negativeMover = new movingObject(x, y, z);
negativeMover.prototype.move = function(b, a){
adday adday
}

var pic = postiveMover(1, 2, 3);
pic.move(20, 10);

我在移动时遇到未定义的错误......很确定我的想法是错误的。任何建议将不胜感激 - 信息链接或谷歌的正确关键字

最佳答案

我认为它更像是您要构建的两个类:

function movingObject(x, y, z){
this.x = x; this.y = y; this.z = z;
}

// positive mover : child class of movingObject
function positiveMover (x, y, z) {
// use parent class's constructor.
movingObject.apply(this,arguments);
};

// inherit parent's class.
positiveMover.prototype = Object.create(movingObject.prototype);

positiveMover.prototype.move = function(a, b){ yadda yadda }

但是,如果您寻求按实例选择方法,您可以这样做:

function movingObject(x, y, z, movingMethod){
this.x = x; this.y = y; this.z = z;
this.move = movingMethod;
}

或者只是设置移动对象的移动属性,从而覆盖默认原型(prototype):

function movingObject(x, y, z){
this.x = x; this.y = y; this.z = z;
}
movingObject.prototype.move= function(a,b) { /*some default code*/}

var oneMover = new movingObject(0,0,0);
oneMover.move = function(a,b) { /* some specific code */ };

关于javascript 基础对象用不同的方法创建另外两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20215500/

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