gpt4 book ai didi

javascript - 面向对象的javascript中成员变量的最佳方法?

转载 作者:可可西里 更新时间:2023-11-01 01:45:45 24 4
gpt4 key购买 nike

这是对我刚刚发布的问题的跟进。我想知道在使用 MyClass.prototype 定义方法时,你们都如何处理 javascript 类中的成员变量。

如果你在构造函数中定义了所有的方法:

function MyClass(){
this.myMethod = function(){}
}

您可以很好地声明成员变量并从您的方法内部访问它们:

function MyClass(){
var myVar = "hello";
this.myMethod = function(){
alert(myVar);
}
}

当使用 Object.prototype 技术时,你失去了这种精确性,而不得不这样做;

function MyClass(){}
MyClass.prototype.myVar = "hello";
MyClass.prototype.myMethod = function(){alert(this.hello)};

我对每次访问成员变量时都必须写“this”并不着迷。出于内存和灵 active 的原因,我想使用 Object.prototype 方法,但它在语法方面似乎笨拙得多。这是你们通常的工作方式吗?

谢谢,

-摩根

最佳答案

您应该克服对使用 this 指针访问成员变量的厌恶。

在构造函数中赋值成员变量,可以通过原型(prototype)方法访问:

function Cat(){
this.legs = 4;
this.temperament = 'Apathetic';
this.sound = 'Meow';
}

Cat.prototype.speak = function(){alert(this.sound)}

var cat = new Cat();
cat.speak();

是的,这些对象属性是公开的,但正如 Guido 所说,我们都是成年人。毕竟,Javascript 是一种纯文本、松散类型的解释型语言。在这种环境中,“私有(private)”变量的好处充其量是不稳定的。

我说的只是明确和明显地说明应该如何访问您的对象,违反者将自行承担风险。

关于javascript - 面向对象的javascript中成员变量的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/436234/

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