让我们拥有以下功能:
function transformMatrix(a, b, c, d, e, f)
{
this.data = [a, c, e, b, d, f, 0, 0, 1];
}
transformMatrix.prototype.inverse = function()
{
//..
this.data = newdata;
return this.data;
}
和
var m1 = new transformMatrix(1, 0, 0, 1, 10, 20); // translate (10, 20)
现在,当我打电话时
m1.inverse();
变量m1
被改变。
但是当我打电话
var m2 = m1.inverse();
variablem1
已更改,并且已将更改的内容复制到 variable m2
。伟大的!
有没有办法在inverse
不改变原始变量的情况下将结果分配给新变量?
我可以这样做:
var m2 = m1;
m2.inverse();
但我想知道,如果有其他方法,没有事先分配,比如
var m2 = {m1}.inverse(); // incorrect syntax
那不会改变m1
的。
请注意,inverse
不应更改函数的功能。
任何帮助将不胜感激。谢谢...