代码太绕弯了,想不明白,求解脱
时间:2010-06-04
来源:互联网
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title> </title> <style type="text/css"> *{ margin:0; padding:0; } </style> <script> var Shaka = function(age) { return new Shaka.fn.init(age); }; Shaka.fn = Shaka.prototype = { init: function(age) { this.age = age; return this;}, sayHello: function() { alert('I am a little big baby, my age is ' + this.age + ' years old.'); } }; Shaka.fn.init.prototype = Shaka.fn; Shaka(1).sayHello() </script> </head> <body class="yui3-skin-sam yui-skin-sam"> </body> </html>
提示:您可以先修改部分代码再运行
var Shaka = function(age) { return new Shaka.prototype.init(age); };提示:您可以先修改部分代码再运行
Shaka.prototype = {
init: function(age) {
this.age = age;
return this;
},
sayHello: function() { alert('I am a little big baby, my age is ' + this.age + ' years old.'); }
};
Shaka(1).sayHello()
为什么这样就不行.......return this不是也是返回到shaka的实例了吗,应该也能sayHello的啊......不解不解
作者: hotcrab2008 发布时间: 2010-06-04
Shaka.fn.init.prototype = Shaka.fn; // 必须加上,或改为
Shaka.fn.init.prototype = Shaka.prototype;
//使Shaka.fn.init() 构造的对象拥有和 Shaka 一样的prototype属性和方法
//然后:
return new Shaka.fn.init(age); // 这时构造的对象,才能拥有和Shaka一样的prototype属性和方法
Shaka.fn.init.prototype = Shaka.prototype;
//使Shaka.fn.init() 构造的对象拥有和 Shaka 一样的prototype属性和方法
//然后:
return new Shaka.fn.init(age); // 这时构造的对象,才能拥有和Shaka一样的prototype属性和方法
作者: carkey712 发布时间: 2010-06-04
因为 return new Shaka.fn.init(age);
所以 init: function(age) {
this.age = age;
return this;
},
这里 return this, 返回的是 Shaka.fn.init 对象,而不是Shaka,
所以必须让 Shaka.fn.init 的prototype 继承 Shaka的prototype
所以 init: function(age) {
this.age = age;
return this;
},
这里 return this, 返回的是 Shaka.fn.init 对象,而不是Shaka,
所以必须让 Shaka.fn.init 的prototype 继承 Shaka的prototype
作者: carkey712 发布时间: 2010-06-04
多谢楼上 明白了

作者: hotcrab2008 发布时间: 2010-06-04
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28