下面展示一些 内联代码片
。
function ChangeStyle(btnobj,divobj,json){
this.btnobj = btnobj;
this.divobj = divobj;
this.json = json;
}
ChangeStyle.prototype.init = function () {
var that = this;
this.btnobj.onclick = function () {
for(var key in that.json){
that.divobj.style[key] = that.json[key];
}
};
}
在学习在构造函数的原型对象中创建方法时: 我思考ChangeStyle.prototype为什么要再挑出来写在外面,为啥不直接在构造函数中用this.prototype呢?
在实验中 我写成了
function ChangeStyle(btnobj,divobj,json){
this.btnobj = btnobj;
this.divobj = divobj;
this.json = json;
this.prototype.init = function () {
var that = this;
this.btnobj.onclick = function () {
for(var key in that.json){
that.divobj.style[key] = that.json[key];
}
};
}
}
果不其然报错了,说init木的意义。
在我重思 构造函数实例化时想到:
当使用 new 操作符调用 Person() 的时候,实际上这里会先创建一个对象
然后让内部的 this 指向 instance 对象
接下来所有针对 this 的操作实际上操作的就是 instance
如果按照我这样写,这里的this就不是指向构造函数了 而是实例对象,而实例对象并没有prototype属性!
所以如果想在构造函数的原型对象中创建方法 那就只能挑出来写啦