如何使用全局变量调用绑定到局部变量的方法而不重新分配对象的变量[duplicate]

问题描述 投票:-5回答:2

这个问题在这里已有答案:

var obj = {
    a: 1,
    b: 2,
    sum : function(){
        console.log(this.a + this.b);
    }
}

如何使用全局声明的变量调用obj.sum()?喜欢:-

var a = 6;
var b = 9;

obj.sum(a, b); // Output :- 15
javascript this
2个回答
1
投票

使用a而不是this.a

var obj = {
    a: 1,
    b: 2,
    sum : function(a=this.a, b=this.b){
        console.log(a + b);
    }
}

var a = 6;
var b = 9;

obj.sum(6,9); // Output a=6,b=9 :- 15
obj.sum(6); // Output a=6,b=2:- 8
obj.sum(); // Output a=1,b=2:- 3

使用this.a将使用obj.a,这是1,使用function(a=this.a来设置默认值


0
投票

使用构造方式创建对象

function obj(f,s) {
   a: f,
   b: s,
   sum : function(a, b){
       console.log(this.a + this.b);
    }
}
var a = 6;
var b = 9;
obj.sum(a, b);
© www.soinside.com 2019 - 2024. All rights reserved.