gpt4 book ai didi

Javascript 访问同一个类的函数

转载 作者:行者123 更新时间:2023-11-30 18:38:15 25 4
gpt4 key购买 nike

在下面的代码中:

function xyz(x) {
//something
this.x = x;
}
xyz.prototype = {
a: function () {
//do something
},
b: function () {
//pre
this.a();
//post
}
}

this.a() 的调用给出了不支持的方法 的警告。所以我尝试使用 xyz.prototype.a.call(this) 代替。但它不维护 x 的值。我该怎么做才能从另一个类中调用一个类的方法?

最佳答案

给定你的代码,如果你写:

var myXyz = new xyz("hello");

然后调用

myXyz.b();

应该正确地到达原型(prototype)上的“a()”函数。但是,如果您这样做:

var otherB = myXyz.b;

otherB();

那么它将工作,因为没有上下文对象(也就是说,“b()”中的this值不会被正确设置为一个实例“xyz”)。当函数被用作事件处理程序时,经常会发生这种情况:

 something.onclick = myXyz.b;

事件处理程序在被调用时不会有一个“xyz”实例可以使用。因此,您可以这样写:

 something.onclick = function() { myXyz.b(); };

这清楚地确保有一个“xyz”对象。

关于Javascript 访问同一个类的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7620334/

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