JavaScript官方关键字快捷方式
我在GoogleAPI JavaScript中见过类似的代码,我指的是r=Array部分。以下是他们所做工作的示例:JavaScript官方关键字快捷方式,javascript,Javascript,我在GoogleAPI JavaScript中见过类似的代码,我指的是r=Array部分。以下是他们所做工作的示例: var r = Array; var t = new r('sdsd' , 'sdsd'); alert(t[0]); 关于这一点,有几个问题: 这样写是合法的,不会引起任何问题吗 我可以用其他关键字做类似的事情,比如“For”循环或“this”关键字 我可以有一篇关于JavaScript官方关键字快捷方式等的文章吗 先谢谢你 对 用于-否。此-是 可以在变量中存储对任何Jav
var r = Array;
var t = new r('sdsd' , 'sdsd');
alert(t[0]);
关于这一点,有几个问题:
用于
-否。此
-是数组
,对象
等都是语言内置的<对于,如果
,而
等是,并且不能以任何其他方式存储或引用
你也可以用另一种方式来做(并在这个过程中把自己弄得一团糟):
这很容易像这样撤销:
Array = [].constructor;
编辑:当嵌套将在不同范围内执行的函数时,能够将此
的值分配给变量是至关重要的:
function Widget() {
var that = this;
this.IsThis = function() {
return isThis();
};
function isThis() {
return that == this;
}
}
new Widget().IsThis(); // false!
也许不是最好的例子,但说明了失去范围
您不能重新分配此的值:
function doSomething() {
this = 0; // throws error
}
document.getElementById("b").onclick = function() {
var x = this; //this holds a reference to the DOM element that was clicked
x.value = "Clicked!";
}
用于
-否。此
-是数组
,对象
等都是语言内置的<对于,如果
,而
等是,并且不能以任何其他方式存储或引用
你也可以用另一种方式来做(并在这个过程中把自己弄得一团糟):
这很容易像这样撤销:
Array = [].constructor;
编辑:当嵌套将在不同范围内执行的函数时,能够将此
的值分配给变量是至关重要的:
function Widget() {
var that = this;
this.IsThis = function() {
return isThis();
};
function isThis() {
return that == this;
}
}
new Widget().IsThis(); // false!
也许不是最好的例子,但说明了失去范围
您不能重新分配此的值:
function doSomething() {
this = 0; // throws error
}
document.getElementById("b").onclick = function() {
var x = this; //this holds a reference to the DOM element that was clicked
x.value = "Clicked!";
}
这是因为
Array
是一个对象。你可以用任何物体来做。例如,Date
对象:
var d = Date;
console.log((new d()).getTime()); //Prints time
对于关键字,例如for
或while
,您不能这样做,因为它们是口译员可以识别的语言结构
您可以使用这个:
function doSomething() {
this = 0; // throws error
}
document.getElementById("b").onclick = function() {
var x = this; //this holds a reference to the DOM element that was clicked
x.value = "Clicked!";
}
事实上,这有时非常有用(例如,保留对this
的引用,以便您可以从匿名内部函数访问它)。这也是有效的,因为简单地说,这个
将是一个对象的引用。之所以有效,是因为数组
是一个对象。你可以用任何物体来做。例如,Date
对象:
var d = Date;
console.log((new d()).getTime()); //Prints time
对于关键字,例如for
或while
,您不能这样做,因为它们是口译员可以识别的语言结构
您可以使用这个:
function doSomething() {
this = 0; // throws error
}
document.getElementById("b").onclick = function() {
var x = this; //this holds a reference to the DOM element that was clicked
x.value = "Clicked!";
}
事实上,这有时非常有用(例如,保留对this
的引用,以便您可以从匿名内部函数访问它)。这也是因为,简单地说,这个
将是对一个对象的引用。数组
是一个标识符名称(不是关键字),的
是一个保留关键字,这是有区别的此
是保留字,但您仍可以将其分配给其他变量(这是一个例外-它是唯一表示表达式的关键字,而不是语句或运算符语法)。此处列出了关键字和保留字:数组
是标识符名称(不是关键字),for
是一个保留关键字-这是有区别的此
是保留字,但您仍然可以将其分配给其他变量(这是一个例外-它是唯一表示表达式的关键字,而不是语句或运算符语法)。此处列出了一般的关键字和保留字:您能给我一个“this”引用的示例吗?这项技术有我能读到的东西的名字吗?@gilly3for
,if
等不是语句本身,而是作为语句语法一部分的标记(确切地说是终端)。@ŠimeVidas-请进一步阐述。。。ecmascript规范将for
引用为@MorSela-有关在变量中存储对this
的引用的示例,请参阅“编辑我的答案”。@gilly3 for语句是:for(ExpressionNoInopt;Expressionopt;Expressionopt)语句
。它包括(1)用于
终端的,(2)用于
(
终端的,(3)用于
非终端的表达式,(4);
终端等。for
关键字只是构成for语句的终端之一。关键字不是语句,只是一个令牌。一个语句由多个令牌组成,是一系列令牌。你能给我举个“this”的例子吗参考?这项技术有我能读到的东西的名字吗?@gilly3for
,if
,等等。它们本身不是语句,而是标记(确切地说是终端)这是语句语法的一部分。@ŠimeVidas-请进一步解释…ecmascript规范将for
称为@MorSela-有关在变量中存储对this
的引用的示例,请参阅“编辑我的答案”。@gilly3 for语句是:for(ExpressionNoInopt;Expressionopt;Expressionopt)语句
。它包括(1)用于
终端的,(2)用于
终端的(
终端),(3)用于非终端的ExpressionNoInopt,(4);
终端等。for
关键字只是构成for语句的终端之一。关键字不是语句,只是一个标记。一个语句由多个标记组成,它是