以下是JS / JQuery文件的全部内容。我没有写它,但我正在尝试添加它。我无法理解this
指的是什么。我之前没有看到以这种风格设置的功能(SmartPhone = function() {}
)
SmartPhone = function()
{
this.miniMap = new GameModeMap();
this.init = function()
{
var self=this;
var $PhoneContainer = $("#PhoneContainer");
$PhoneContainer.append("<div id='PhoneScreen'></div>");
$PhoneContainer.append("<div class='PhoneButton'></div>");
$('.PhoneButton').click(function(){self.toggleClicked()});
this.miniMap.init("#PhoneScreen");
//append the appMenu
$("#PhoneScreen").append("<div id='AppMenu'></div>");
$("#AppMenu").hide();
initMenu();
//toggleClicked();
}
this.toggleClicked = function()
{
console.log(this);
$('#PhoneContainer').toggleClass ('clicked');
$('#PhoneScreen').toggleClass ('vertical');
this.miniMap.toggle();
$('#AppMenu').toggle();
}
this.init();
}
答案 0 :(得分:2)
var Construct = function() {
this.magic = 42;
}
var c = new Construct();
alert(c.magic === 42);
答案 1 :(得分:2)
他们正在使用JavaScript的Object Functionality。
在此示例中, SmartPhone
本质上是一个类结构,init()
是构造(由this.init()
中的最后SmartPhone
行调用。
this
正在引用范围,在这种情况下是正在创建的对象。
答案 2 :(得分:1)
JavaScript中的“this”变量可以指向许多不同的东西,具体取决于您的上下文。有一篇很棒的博客文章称为:Understanding JavaScript’s this keyword
在您显示的上下文中,这将绑定到从SmartPhone构造函数创建的对象。
答案 3 :(得分:0)
这是指SmartPhone对象。例如,this.init定义了SmartPhone的init方法。稍后,您可以使用SmartPhone.init()来访问它。