javascript 函数实例的变量有误
javascript function instance has wrong its var
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();
我简单地写了一些错误的代码。
我虽然每个函数实例都有自己的 属性,所以最后的控制台输出将是 'num 1'
但 'num 3'
.
我是不是想错了?
问题出在这里:
myClass.prototype.fun = function( ) {
myFunction();
}
您没有将函数分配给实际实例,而是分配给 class。每次实例化 class 时,您都会将属于所有实例的原型函数更新为在最后一个实例中创建的特定 myFunction
。
您将使用以下代码获得所需的行为:
this.fun = function( ) {
myFunction();
}
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();
我简单地写了一些错误的代码。
我虽然每个函数实例都有自己的 属性,所以最后的控制台输出将是 'num 1'
但 'num 3'
.
我是不是想错了?
问题出在这里:
myClass.prototype.fun = function( ) {
myFunction();
}
您没有将函数分配给实际实例,而是分配给 class。每次实例化 class 时,您都会将属于所有实例的原型函数更新为在最后一个实例中创建的特定 myFunction
。
您将使用以下代码获得所需的行为:
this.fun = function( ) {
myFunction();
}