【发布时间】:2014-02-04 01:08:36
【问题描述】:
您好,我正在尝试学习 JavaScript,而且我来自 C++ 背景,所以这一切都让我很困惑。我的代码看起来像这样
var someArray = [];
nameCompare = function(this.first,this.second)
{
if(first.name == second.name)
{
return 0;
}
else if(first.name < second.name)
{
return -1;
}
else
{
return 1;
}
};
someArray.tempSort = function(){
return this.sort(nameCompare);
};
var someOtherArray= Object.create(someArray);
someOtherArray.push({name: 'A', price: 3, rating: 2, distance: 2},
{name: "B", price: 1, rating: 5, distance: 1},
{name: 'C', price: 2, rating: 3, distance: 5},
{name: 'D', price: 5, rating: 4, distance: 8});
console.log(someOtherArray.tempSort());
我对 this 关键字感到困惑,因为 someArray 从 someOtherArray 获取它的属性并且我想按名称排序我不知道如何从 someOtherArray 正确调用 name 属性。我理解 this 关键字引用当前对象但我米还是输了。由于某种原因,我不断收到关于缺少形式参数的错误,我可以不通过辅助函数传递 this.first 和 this.second 吗?
【问题讨论】:
-
Object.create可能不是您想要的,即使它可能对您有用。如果要创建数组的副本,请使用someArray.slice()
标签: javascript inheritance prototype this