Javascript作用域,赋值
Javascript scope, assiging values
我有这个"小盒子"在。php文件,但在html部分:
X: <input name="translate_x" id="translate_x" type="text" maxlength="3" value="0" onchange=""/></br>
在另一个文件。js中,我有:
JSC3D.Matrix3x4.prototype.translate = function(tx, ty, tz) {
console.log("woop");
function changex() {
tx = parseFloat(document.getElementById('translate_x').value) + "<br>";
}
console.log(tx);
this.m03 += tx;
this.m13 += ty;
this.m23 += tz;
};
和控制台告诉我没有定义changex()函数。我想要的是,当我在文本框中输入数字时,它会给tx赋值,有人能帮我解决这个问题吗?
/////////////////////////////////////
I made It working perfectly now, here is code :
html file:
X: <input name="translate_x" id="translate_x" type="text" maxlength="3" value="0" onchange=""/></br>
.js file:
JSC3D.Matrix3x4.prototype.translate = function(tx, ty, tz) {
var t=0;
t = parseFloat(document.getElementById('translate_x').value);
console.log(t);
if(t!=0)
{
console.log(this.m03);
this.m03 += tx;
tx=t;
this.m03 += tx;
this.m13 += ty;
this.m23 += tz;
}
else
{
this.m03 += tx;
this.m13 += ty;
this.m23 += tz;
}
};
您已经正确地识别出这是关于范围的。由于函数changex
是在函数JSC3D.Matrix3x4.prototype.translate
中定义的,因此它只存在于该函数中,并且只能从该函数中调用。为了能够从onchange
事件调用它,您必须全局声明它。这可以通过把它移开来实现,像这样:
JSC3D.Matrix3x4.prototype.translate = function(tx, ty, tz) {
console.log("woop");
console.log(tx);
this.m03 += tx;
this.m13 += ty;
this.m23 += tz;
};
function changex() {
tx = parseFloat(document.getElementById('translate_x').value) + "<br>";
}
但是,请注意现在有两个名为tx
的变量。一个是translate
的参数,因此它的作用域就是那个函数。另一个在changex
中使用,除非它在函数外部声明,否则它的作用域将在其中。
changex
中的tx
不会影响翻译中的tx
。
相关文章:
- 未设置变量的赋值| jQuery的作用是什么
- JavaScript作用域:如何创建具有不同值的匿名函数
- 单击时独立作用域值不会更改
- ng根据作用域值隐藏
- 无法从父作用域检索值
- 如何在angularjs中访问一个指令作用域值到另一个指令
- 使用ng repeat中的键值来扩展作用域表达式
- 隔离未更新指令中值的作用域
- 如果作用域值等于单击的元素的属性值,则Ng类
- 匹配AngularJS中不同作用域的值
- AngularJS 从 addEventListener 返回作用域中的值
- 数组解构赋值在 v8 中不起作用,Node.js 中的和谐选项
- 变量未正确赋值,可能存在作用域问题(getJSON()中的each()中有一个开关的函数)
- 如何触发函数或将选定值赋给另一个作用域变量
- 在作用域之外将对象赋值给let关键字
- 将所有局部作用域变量赋值给另一个对象
- 为什么全局变量在javascript的局部作用域中赋值后仍然未定义?
- AngularJS将变量赋值到view的作用域中
- Javascript作用域,赋值
- 将变量赋值给全局作用域有什么危险或好处吗?