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();
}