请考虑以下代码.
function a() {}
function b() {}
function c() {}
b.prototype = new a();
c.prototype = new b();
console.log((new a()).constructor); //a()
console.log((new b()).constructor); //a()
console.log((new c()).constructor); //a()
Run Code Online (Sandbox Code Playgroud)
此外,请考虑以下内容.
console.log(new a() instanceof a); //true
console.log(new b() instanceof b); //true
console.log(new c() instanceof c); //true
Run Code Online (Sandbox Code Playgroud)
(new c()).constructor
等于a()
和Object.getPrototypeOf(new c())
是a{ }
,怎么可能instanceof
知道这new c()
是一个实例c
?array_udiff
使用回调函数计算两个数组之间的差异.但是,它需要比较函数而不是谓词函数.
比较函数将项目A相对于项目B进行比较.谓词函数将仅确定项目A是否等于项目B.
排序函数通常需要比较函数来确定正确的排序.由于array_udiff
只是计算差异,确定每对是否相等的谓词函数似乎应该足够了.
为什么array_udiff使用比较函数而不是谓词函数?如果我使用谓词而不是重要吗?即我可以选择仅使用0
和1
返回值来表示不平等和平等,放弃这种-1
可能性吗?如果有的话会对我的结果产生什么不利影响?
我有一个简单的 2D 系统,其中速度表示为速度(某个值)和方向(角度)。如果我有一个物体以给定的速度v行进,当另一个速度v 2作用于它时,我想计算合成速度v 3。
我创建了以下插图来解释我希望实现的物理系统。速度和角度可能不完全正确,因为我还不知道如何计算它们——这是这个问题的关键——但它们作为一个相当接近的指导方针。
当新速度v 2作用于以v行进的物体时,是否有一种优雅的解决方案来计算合成速度v 3?
请注意,我对数学的理解非常有限,但对编程有很好的理解。我正在使用 TypeScript 进行编码,但是任何使用 JavaScript 的答案、伪代码或非常清晰的解释(没有充斥着神秘的数学符号)都是有帮助的。
php ×2
arrays ×1
constructor ×1
inheritance ×1
instanceof ×1
javascript ×1
typescript ×1
wsdl ×1