gpt4 book ai didi

Javascript JQuery 属性范围

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

作为初学者,我正在阅读 Nick Morgan 的 Javascript for Kids,我生成了以下 JavaScript 代码 -

var Car = function(x,y) {
this.x = x;
this.y = y;
}

Car.prototype.draw = function () {
var carHtml = '<img src="http://nostarch.com/images/car.png">';
this.carElement = $(carHtml);

this.carElement.css({
position:"absolute",
left:this.x,
top:this.y
});
}

var tesla = new Car (20,20);
var nissan = new Car (100,200);

tesla.draw();
nissan.draw();

现在,我使用 JavaScript 构造函数方法创建对象,使用 prototypes 技术创建 draw 方法,我可以调用我从每个 car< 实例创建的汽车对象

根据我在 Python 方面的经验,所有方法都可以访问从类实例创建的对象的所有属性。

我的问题是,汽车构造函数创建的对象中的所有方法都可以访问属性吗?

最佳答案

My question is, are properties accessible by all methods in an object created by the car constructor?

任何有权访问该对象的代码都可以访问它们。因此,如果 Car 构造函数(或其他任何东西)创建的方法可以访问该对象,那么是的,它可以访问这些属性。如果 Car 构造函数创建的方法没有(例如,它在完全不同的对象上创建方法),那么该方法可能无法访问这些属性。

请注意,如果方法是通过 this 访问对象,则该方法是否可以访问对象可能会有所不同,具体取决于它的调用方式。更多:How to access the correct this inside a callback?

JavaScript 还没有真正的私有(private)属性。如果您可以访问该对象,您就可以访问它的所有真实属性。

有一个proposal ,目前处于第 3 阶段*,将私有(private)字段添加到通过 class 语法创建的 JavaScript 对象。 (它曾经是一个单独的私有(private)属性提案,但它与类字段提案结合在一起。)迄今为止,私有(private)数据经历了漫长的曲折之路,虽然该提案已进入第 3 阶段,但它仍有相当一部分旅行之路。


* Explanation of stages

关于Javascript JQuery 属性范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372167/

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