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???
听老师说 这是创建对象的一种比较好的方式 有点不懂 请大家帮忙解答下 谢谢
这种方式还是不错滴,有啥不懂,具体点。
@平淡日子里的刺: 这个方法是定义在原型上的,在new的时候,是调用的原型方法。
@幻天芒: 我不太懂这个this._init_() this 是不是指的是新new出来的对象,它已经拥有了_init_ 方法吗?
@平淡日子里的刺: 你要理解原型方法的特征。这个this是新new出来的这个对象,它使用的是原型的方法(类似继承过来的方法),并不是它本身的。
非也,用了class才是像样。
@平淡日子里的刺:this._init_(option);是在构造函数里面初始化函数,option也就是所谓的参数。
这里涉及到了原型的使用,无论什么时候,只要创建了一个新的函数,就会根据一组特定的规则为该元素创建一个原型属性(prototype),所以在你新建一个对象时,就给你添加一个原型属性,只不过这时候你给这是属性添加了_init_方法和show,还有constructor属性。更多请参考《javascript高级程序设计》原型模式。
Jquery创建对象应该很简单啊