javascript函数实例有错误的var

时间:2015-11-09 02:34:23

标签: javascript function properties instance

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'

我想错了吗?

1 个答案:

答案 0 :(得分:2)

问题在于:

$("#input").focusout(function() {
    $(this).css("background-color", ($(this).val() == "") ? "red" : "white");
});

您没有将函数分配给实际实例,而是分配给类。每次实例化该类时,您都要将属于所有实例的原型函数更新为在最后一个实例期间创建的特定myClass.prototype.fun = function( ) { myFunction(); }

您可以使用以下代码获得所需的行为:

myFunction