JavaScript:重构对象中的方法和函数存在问题
JavaScript: Issues with methods and functions in refactored object
第一次询问!
我的重构方法(以前在对象内部的方法(不再识别它们与对象的关系。。。我该如何让这些东西发挥作用?
我正在尝试将移动和加速功能应用于这个物体(汽车(。move_fn线性地增加汽车的位置(1、2、3、4…n(。acc_fn通过将汽车先前的速度增加与当前位置相加(30英里/小时+2位置=32英里/小时,32英里/小时+3位置=35英里/小时、35英里/小时+4位置=39英里/小时等(,使汽车的加速度呈指数级增加。此外,function_runner同时运行这两种方法,使一切按顺序开始:
var move_fn = function(){
var prev_position = this.position
this.position += + 1
console.log(this.type + " is moving from " + prev_position + " to " +
this.position + '.')
}
var spd_fn = function(){
var prev_speed = this.speed
console.log(this.position)
this.speed += this.position
console.log(this.type + ' is accelerating from ' + prev_speed + ' to ' +
this.speed + '.' )
}
var function_runner = function(){
this.move_fn()
this.acc_fn()
}
var car = {
type: 'Honda CRV',
position: 1,
speed: 30,
move: move_fn,
speed: spd_fn,
fn_run: function_runner
}
car.function_runner()
Car不再有一个名为function_runner的方法,您已经将其分配给了fn_run方法,所以您将调用Car.fn_run((。move_fn也是如此-重命名为move,并且"acc_fn"在任何地方都没有定义。
所以它应该是:
var move_fn = function(){
var prev_position = this.position
this.position += + 1
console.log(this.type + " is moving from " + prev_position + " to " +
this.position + '.')
}
var spd_fn = function(){
var prev_speed = this.speed
console.log(this.position)
this.speed += this.position
console.log(this.type + ' is accelerating from ' + prev_speed + ' to ' +
this.speed + '.' )
}
var function_runner = function(){
this.move()
this.speed()
}
var car = {
type: 'Honda CRV',
position: 1,
speed: 30,
move: move_fn,
speed: spd_fn,
fn_run: function_runner
}
car.fn_run()
尽管这是一种奇怪的结构方式。
相关文章:
- IE9的HTML5 Canvas getImageData()函数存在问题
- 如何添加函数中存在的所有参数
- 如何将一个函数附加到一个不存在的元素上
- 当提供函数名称时,检查函数是否存在于同一作用域中
- 运行时不存在Javascript函数
- 如何使用函数来确定 Javascript 数组中是否存在值
- 在运行Javascript/jQuery中的函数之前,检查元素是否存在是否更具性能
- TypeError:$(..).higharts不是函数-现有解决方案不起作用-Yeoman生成器存在问题
- 检查D3.js中的函数中是否存在URL
- 在Require.js中,如果Require()是一个函数,那么Require.config()是如何存在的
- javascript className函数存在问题
- this.function不是函数错误,但函数存在
- jquery中的click函数存在问题
- 与变量值同名的函数存在,但是接收到typeError,为什么?
- create_row()函数存在问题
- JavaScript:重构对象中的方法和函数存在问题
- 为什么getUTCSeconds和getUTCMilliseconds函数存在?
- 匿名函数和命名函数存在疑问
- 未捕获的类型错误:不是函数,但函数存在
- 当有一个警报函数存在时,回调会被触发,如果没有警报,它不会被触发