Javascript - 如何将属性添加到对象构造函数
如何在JavaScript中为构造函数添加属性?例如。如果我有以下功能。Javascript - 如何将属性添加到对象构造函数
function Hotel(name)
{
this.name = name;
};
var hotel1 = new Hotel('Park');
可我再补充一点,可以在本地类中,就好像它是私人用相同的符号使用关键字“这个”使用的“局部”变量。当然,它不会是私人的,因为创建的对象将能够正确使用它?
我可以这样做吗?我使用this
关键字还是我使用var
关键字 这是哪一个?我有在底部
1. var numRooms = 40;
2. this.numRooms = 40;
3. numRooms : 40,
function Hotel(name)
{
this.name = name;
this.numRooms = 40;
};
我知道,如果我想对象的构造函数中的一个函数,我需要使用this
字例2的功能构造。如上所述,这对于正常变量是否会起作用?
function Hotel(name)
{
this.name = name;
this.numRooms = 40;
this.addNumRoomsPlusFive = function()
{
return this.numRooms + 5;
}
};
通常它进行使用闭包:
var Hotel = (function() {
var numrooms=40; // some kind of private static variable
return function(name) { // constructor
this.numrooms = numrooms;
this.name = name;
};
}());
var instance = new Hotel("myname");
你可以简单的增加一个私有变量构造函数:
function Hotel(name) {
var private = 'private';
this.name = name;
};
但是如果你会用你Hotel
功能没有new
运营商,所有属于this
的财产和功能将成为全球性的。
function Hotel(name) {
var private = 'private';
this.name = name;
};
var hotel = Hotel('test');
console.log(name); // test
这是在构造函数返回一个对象好主意:
function Hotel(name) {
var
private_var = 'private',
private_func = function() {
// your code
};
retur {
name: 'name',
public_func: private_func
}
};
var hotel = Hotel('test');
console.log(name); // undefined
所以,如果你会使用Hotel
构造不new
运营商没有全局变量将被创建。这只有在返回值是一个对象时才有可能。否则,如果您尝试返回任何不是对象的东西,那么构造函数将继续其通常的行为并返回this
。
总之。这个。操作符与说var相同?它是一个公共变量? –
如果您将使用'var'在函数中创建一个变量,它将自动成为该函数的私有(或本地)。 –
@HugoPerea阅读关于JavaScript关闭。他们很快就会成为好朋友。 – evolutionxbox
这是指其范围存在于当前文档中的变量。 Var会声明变量,你的第三点不会做任何事情。我认为你正在将属性分配给对象。这不是你分配的方式 –
我错误地改正了。 –
我只想知道你是否可以使用this关键字来声明新的变量,而不是使用关键字var。正如使用addNumRoomsPlusFive函数完成的。更正。我不添加变量我添加属性。 –