gpt4 book ai didi

javascript - 声明为对象属性与作为参数传递

转载 作者:行者123 更新时间:2023-11-28 19:08:11 24 4
gpt4 key购买 nike

什么时候在对象上定义属性或将局部变量作为参数传递更好?

简化示例:

var obj = function(){

this.method_1 = function(){
this.var_1 = 1;
this.method_2();
};

this.method_2 = function(){
//Access var_1
var_3 = this.var_1 * 2;
};
};

var obj = function(){

this.method_1 = function(){
var var_1 = 1;
this.method_2(var_1);
};

this.method_2 = function(var_1){
//Access var_1
var_3 = var_1 * 2;
};
};

这有关系吗?

编辑:我应该之前提到过这一点,但仍然:

我遇到的情况是,Google Map 实例是通过 mapPresenter 对象上的方法创建的;该方法只有在某个事件触发后才会执行。虽然我不需要从外部访问 map 实例,但我在演示者对象本身的许多方法中使用它,这将使在演示者对象上设置属性变得“更容易”。

最佳答案

仅当您需要从外部访问它并且该值在逻辑上是实例的一部分时,它才应该是一个属性。如果它只是调用所需的值,那么您应该使用方法参数。您在方法调用中而不是在实例化时(在构造函数中)创建属性应该作为警告气味。

function Obj() {
this.var_1 = 1;

this.method = function() {
return this.var_1 * 2;
};
}
var o = new Obj;
console.log(o.var_1);
console.log(o.method());

function Obj() {
this.method = function(var_1) {
return var_1 * 2;
};
}
var o = new Obj;
console.log(o.method(1));

关于javascript - 声明为对象属性与作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com