首页 新闻 搜索 专区 学院

JavaScript 创建对象

1
[已解决问题] 解决于 2016-07-27 21:50
var Func  = function(option){
    this._init_(option);
}

Func.prototype = {
    constructor:Func,
    _init_:function(option){
        this.name = option.name;
        this.age = option.age;
    },
    show:function(){
        console.log(this.name);
    }
}

var f = new Func({name:'pawn',age:13});
f.show();//  pawn???

听老师说 这是创建对象的一种比较好的方式 有点不懂 请大家帮忙解答下 谢谢

小精灵儿Pawn的主页 小精灵儿Pawn | 菜鸟二级 | 园豆:470
提问于:2016-07-26 22:03
< >
分享
最佳答案
0

这种方式还是不错滴,有啥不懂,具体点。

奖励园豆:5
幻天芒 | 高人七级 |园豆:36781 | 2016-07-26 23:20
  但是 new Func在执行的时候 ,新创建的object 还没有拥有这个_init_ 方法啊   又是怎样 .init 的呢?
小精灵儿Pawn | 园豆:470 (菜鸟二级) | 2016-07-26 23:22

@平淡日子里的刺: 这个方法是定义在原型上的,在new的时候,是调用的原型方法。

幻天芒 | 园豆:36781 (高人七级) | 2016-07-26 23:35

@幻天芒:  我不太懂这个this._init_()   this 是不是指的是新new出来的对象,它已经拥有了_init_ 方法吗?

小精灵儿Pawn | 园豆:470 (菜鸟二级) | 2016-07-26 23:39

@平淡日子里的刺: 你要理解原型方法的特征。这个this是新new出来的这个对象,它使用的是原型的方法(类似继承过来的方法),并不是它本身的。

幻天芒 | 园豆:36781 (高人七级) | 2016-07-26 23:41
其他回答(3)
-2

非也,用了class才是像样。

jasondyoung | 园豆:424 (菜鸟二级) | 2016-07-26 22:19
1

@平淡日子里的刺:this._init_(option);是在构造函数里面初始化函数,option也就是所谓的参数。

这里涉及到了原型的使用,无论什么时候,只要创建了一个新的函数,就会根据一组特定的规则为该元素创建一个原型属性(prototype),所以在你新建一个对象时,就给你添加一个原型属性,只不过这时候你给这是属性添加了_init_方法和show,还有constructor属性。更多请参考《javascript高级程序设计》原型模式。

shawn的博客 | 园豆:243 (菜鸟二级) | 2016-07-27 00:07
0

Jquery创建对象应该很简单啊

小熊vs | 园豆:20 (初学一级) | 2016-07-27 09:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册