Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数实例的var错误_Javascript_Function_Properties_Instance - Fatal编程技术网

javascript函数实例的var错误

javascript函数实例的var错误,javascript,function,properties,instance,Javascript,Function,Properties,Instance,我简单地编写了一些错误的代码。 我认为每个函数实例都有自己的属性,所以最后一个控制台输出应该是'num1',但是'num3' 我想错了吗?问题在于: function myClass( _num) { var num; this.num = _num; var myFunction = function( ) { console.log("num", _num); } myFunction(); myClass.prototyp

我简单地编写了一些错误的代码。 我认为每个函数实例都有自己的属性,所以最后一个控制台输出应该是
'num1'
,但是
'num3'

我想错了吗?

问题在于:

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();
您没有将函数分配给实际实例,而是分配给类。每次实例化该类时,都会将属于所有实例的原型函数更新为在最后一个实例中创建的特定
myFunction

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

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

你总是分配
4
,你怎么能期望1或3?对不起,我没有在fiddle上更新代码。你能复习一下吗?什么是数字1或数字3?您的脚本不包含这些
this.fun = function( ) {
    myFunction();
}