关于《JavaScript语言精粹》中的原型继承问题 本帖最后由 mccissb 于 2013-03-15 21:19:16 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var stooge = {};stooge['first-name'] = 'Jerome';stooge['middle-name'] = 'Lester';var another_stooge = Object.beget(stooge);第一种写法,假如要得到first-name的值,用another_stooge['first-name'];第二种写法,假如要得到first-name的值,用another_stooge.prototype['first-name']; 经过一个上午的查找和测试,应该和原型链有关。通过楼主的第一个函数既 new F() 创建的对象,不存在 prototype 属性,而存在 __proto__ 属性;通过楼主所写的第二个函数创建的对象,存在 prototype 属性,而不存在 __proto__ 属性;仍在研究中...以下是我的测试代码://两种函数Object.cr= function(o) { var F = function() {}; F.prototype = o; return new F();};Object.bt= function(o) { var newObject = {}; newObject .prototype = o; return newObject ;};//创建原始对象var o = { x:"o_x", y:"o_y" };//通过三种不同方法创建新对象var o_de = o; var o_cr = Object.cr(o);var o_bt = Object.bt(o);//改写原始对象属性o.x = "o.x2";o_bt.x= "o_bt";o_cr.x= "o_cr";//显示对象的属性和方法console.dir(o_de);console.dir(o_cr);console.dir(o_bt); 函数对象的prototype属性 document.write的问题 刚看懂点Jquery的语法,问个问题 如何通过js将一base64编码的图片显示在html中 菜鸟问题,得到答案就给分 JS关于时间判断的问题??????? 求一个简单函数? 如何弹出菜单-躲过拦截 怎么让两个select控件的selectedindex保持一致? 怎么用JAVASCRIPT来生成树形菜单? Ext的Ext.data.proxy.Memory的update永远报TypeError: recs is null window.onload执行带参数的函数
stooge['first-name'] = 'Jerome';
stooge['middle-name'] = 'Lester';
var another_stooge = Object.beget(stooge);第一种写法,假如要得到first-name的值,用another_stooge['first-name'];第二种写法,假如要得到first-name的值,用another_stooge.prototype['first-name'];
通过楼主的第一个函数既 new F() 创建的对象,不存在 prototype 属性,而存在 __proto__ 属性;
通过楼主所写的第二个函数创建的对象,存在 prototype 属性,而不存在 __proto__ 属性;仍在研究中...以下是我的测试代码://两种函数
Object.cr= function(o) {
var F = function() {};
F.prototype = o;
return new F();
};
Object.bt= function(o) {
var newObject = {};
newObject .prototype = o;
return newObject ;
};//创建原始对象
var o = { x:"o_x", y:"o_y" };//通过三种不同方法创建新对象
var o_de = o;
var o_cr = Object.cr(o);
var o_bt = Object.bt(o);//改写原始对象属性
o.x = "o.x2";
o_bt.x= "o_bt";
o_cr.x= "o_cr";//显示对象的属性和方法
console.dir(o_de);
console.dir(o_cr);
console.dir(o_bt);