有几个问题!!
function add(name,sex,age){
this.name=name,
this.sex=sex,
this.age=age,
this.eat=function(){
alert(this.name+'---'+this.sex+'---'+this.age);
}
}
var ddd = new add('sjd','18','15');
ddd();
1.我自己输入了这样的构造函数,为什么浏览器会报错,说ddd is not function?
2.之前课程里说的构造函数,不是应该这样写吗, var ddd=new Add() ??
3.如果我把this 改成add,是不是后面就没办法在外部引用多个不一样的函数了?
正在回答 回答被采纳积分+1
你好同学,解答如下:
ddd是实例化的对象,而代码中ddd()表示调用一个函数,对象不能这样调用,所以调用就会报错告诉你ddd不是一个函数哦。如果想要获取ddd的属性,要通过如下语法,调用对象中的方法哦。
var ddd=new add()整个语句是通过构造函数Add实例化了一个具体的对象,构造函数是add。之前的课程中老师也是说的构造器是Function,这个Function是js中本身就有的,每一个函数都会有一个Function对象,所以不用像代码中那样定义一个函数了。这里要重新理解一下,老师并不是说的这一整条语句是构造函数哦。
你好同学,this如果变成add,那么这些属性就是add自身的,就不能实例化对象了。因为函数里面的this在实例化的时候指向实例化对象,所以实例化对象才会拥有了构造函数里面的属性。
祝学习愉快 ,望采纳。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星