我正在学习一个javascript,当我经历它时,我正在学习prototyping
所以我尝试了以下代码
function vehicle(type,year){
this.type="moped";
this.year="2012";
}
Activa=new vehicle;
console.log(Activa.type);
console.log(Activa.year);
function speed(km){
console.log(km);
}
vehicle.prototype.speed=speed;
console.log('160km/hr');
上面的代码给了我正确和正确的输出
但是
当我尝试它的变量时,它并没有给我正确的输出
以下是代码
function vehicle(type,year){
this.type="moped";
this.year="2012";
}
Activa=new vehicle;
console.log(Activa.type);
console.log(Activa.year);
function speed(km){
km="160";
console.log(km);
}
vehicle.prototype.speed=speed;
console.log(Activa.speed);
上面的代码在chrome开发人员工具
中给了我以下(Chrome控制台的快照)输出我做错了什么?为什么它给了我像输出中我想要的输出的输出160
答案 0 :(得分:3)
您的代码问题
speed()
console.log(Activa.speed);
方法缺少括号
您的speed()
方法未返回任何未定义的原因
尝试以下内容
function vehicle(type, year) {
this.type = "moped";
this.year = "2012";
}
Activa = new vehicle;
console.log(Activa.type);
console.log(Activa.year);
function speed(km) {
var km = km || "160";
console.log(km);
return km;
}
vehicle.prototype.speed = speed;
console.log(Activa.speed());
function Vehicle(type, year) {
this.type = "moped";
this.year = "2012";
}
var activa = new Vehicle;
console.log(activa.type);
console.log(activa.year);
function speed(km) {
var km = km || "160";
console.log(km);
return km;
}
Vehicle.prototype.speed = speed;
console.log(activa.speed());
有关详情,请点击此处 - http://www.phpied.com/3-ways-to-define-a-javascript-class/
答案 1 :(得分:1)
那是正常的,
您正在将速度称为函数
function speed(km){
km=km||"160";
return km;
}
所以你应该像那样记录速度
console.log(Activa.speed());
而不是那样
console.log(Activa.speed);
你将获得正确的输出(160)
答案 2 :(得分:0)
Activa.speed是一个函数,所以如果你使用
console.log(Activa.speed());
它会输出你期望的结果。
函数也是javascript中的变量,所以console.log(Activa.speed);输出变量的内容,在本例中是一个函数。