javascript - 传递函数只是一个链接吗? Javascript

标签 javascript oop prototype

使用Javascript时如下:

function Test(Example) {
}

Test.prototype.etc etc etc


function Example() {
}


Example.prototype.etc etc etc


example = new Example();
test = new Test(example);

这是有效的还是我以某种方式占用内存?

我问这个是因为我目前在我的 javascript 游戏中有以下设置,每个设置都需要其他一些设置(在括号中):

相机( Canvas ) 输入( Canvas 、相机、瓷砖 map ) Sprite (相机、 Canvas )

我是不是用错了方法?我应该以其他方式传递此方法吗?这让我很担心,因为我现在有很多新的 sprite 实例,想知道它是否会成为一个问题。

干杯

最佳答案

JavaScript 对象(和函数)在作为参数传递时不会被复制。看看下面的代码(或在 JSFiddle 上测试它):

function Foo() {};
Foo.prototype.property = 5;
function incrementProperty(parameter) { parameter.property++; };

var foo = new Foo();

alert(foo.property); // 5
incrementProperty(foo);
alert(foo.property); // 6
alert(new Foo().property); // 5, because it's a new object

foo 对象在传递给 bar 函数时被复制。 fooproperty 在方法之外保留值这一事实证明了这一点。简单地说,fooparameter 指向同一个对象。

但请记住,它们它们自己 不是同一个对象。如果您重新分配 parameter 以指向 bar 函数中的新值 (parameter = "dummy";),foo 不会受到影响。这种区别有意义吗?

注意:JavaScript 字符串和数字在作为参数传递时会被复制。

关于javascript - 传递函数只是一个链接吗? Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708541/

相关文章:

javascript - 在 AWS Amplify 上构建 React 应用程序在 Amplify 控制台中失败

javascript - 如何使用谷歌地图重新渲染 Ember 组件

java - 浅谈Java中的安全构造函数技术

Javascript:建立原型(prototype)链

javascript - 设置原型(prototype)对象的字段会更改所有实例

javascript - 从外部类获取 CSS

javascript - .split().join() 返回比原来更多的字符

oop - 编写长构造函数有什么缺点吗?

c++ - 重载方法以实现接口(interface)的特殊情况

javascript - (Object instanceof Function) 和 (Function instanceof Object) 怎么都是真的?