gpt4 book ai didi

javascript函数实例有错误的var

转载 作者:行者123 更新时间:2023-11-30 16:29:12 26 4
gpt4 key购买 nike

function myClass( _num) {
var num;
this.num = _num;

var myFunction = function( ) {
console.log("num", _num);
}
myFunction();

myClass.prototype.fun = function( ) {
myFunction();
}
}

var c1 = new myClass(1);
var c2 = new myClass(2);
var c3 = new myClass(3);

c1.fun();

code fiddle

我简单地写了一些错误的代码。我虽然每个函数实例都有自己的属性,所以最后的控制台输出将是 'num 1' 而不是 'num 3'

我是不是想错了?

最佳答案

问题出在这里:

myClass.prototype.fun = function( ) {
myFunction();
}

您不是将函数分配给实际实例,而是分配给类。每次实例化该类时,您都会将属于所有实例的原型(prototype)函数更新为在最后一个实例中创建的特定 myFunction

您将通过以下代码获得所需的行为:

this.fun = function( ) {
myFunction();
}

关于javascript函数实例有错误的var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33601651/

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