请老师检查
来源:3-4 编程练习
qq_慕先生0342934
2020-06-10 23:17:47
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// json格式
// var obj = {
// name : 'imooc',
// action : function(){
// alert('前端');
// }
// }
// Object方式
// var obj = new Object();
// obj.name = 'imooc';
// obj.action = function(){
// alert('前端');
// }
// 构造函数方式
function obj(name, action){
this.name = name;
this.action = function(){
alert('前端');
};
}
// var fn = new obj('name');
//老师这一步为啥不能少啊,上面那个不是已经是完整的函数了么
var fn = new obj('imooc');
console.log(fn.name);
fn.action();
</script>
</body>
</html>
2回答
好帮手慕言
2020-06-12
同学你好,构造函数中的this指向实例化对象,fn就是实例化出来的对象。
如果同学是下方的写法:
那么,this指向函数的调用者,obj是window调用的,因此obj里的this指向的是window。
祝学习愉快~
好帮手慕夭夭
2020-06-11
同学你好,代码实现正确。另外,注释的问题解答如下:
因为obj是一个构造函数,在里面通过this定义了属性和方法。要通过new去实例化一个具体的对象来使用。给同学打一个比喻,这个构造函数就相当于一个类,假如我们定义的类是一个人类,那么人类保存了很多相同的特性 ,例如人类都有名字. 而通过new实例化出来的就是具体的一个对象 , 例如张三 , 李四 ...所以构造函数可以通俗的理解为一个加工厂,通过new去加工东西。如果空有一个工厂,啥工作都不干,那工厂还有什么意义呢。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题