Object.beget(stooge);

<script>
var stooge = {
    "first-name": "Jerome",
    "last-name": "Howard"
};
stooge[‘middle-name‘] = ‘Lester‘;
stooge.nickname = ‘Curly‘;
//以上填充4个元素

if (typeof Object.beget !== ‘function‘) {
     Object.beget = function (o) {
         var F = function () {};
         F.prototype = o;
         return new F();
     };
}
var another_stooge = Object.beget(stooge);

another_stooge[‘first-name‘] = ‘Harry‘;
another_stooge[‘middle-name‘] = ‘Moses‘;
another_stooge.nickname = ‘Moe‘;
//以上填充3个元素

stooge.profession = ‘actor‘;
//原型填充1个元素:因为本身another_stooge没有这个属性,所以到原型去寻找
another_stooge.profession    // ‘actor‘<br />
//如果本身有这个属性,就取这个属性
another_stooge.nickname    // ‘Moe‘

delete another_stooge.nickname;

another_stooge.nickname;    // ‘Curly‘
</script>

时间: 2024-10-04 21:11:27

Object.beget(stooge);的相关文章

语言精粹【摘要】

if (typeof Object.beget !== 'function') { Object.beget = function (o) { var F = function () {}; F.prototype = o; return new F(); };}var another_stooge = Object.beget(stooge); Function.prototype.method = function (name, func) { if (!this.prototype[nam

《JavaScript语言精粹》笔记

Function.prototype.method=function(name,func){    this.prototype[name]=func;    return this;}//1.注释最好使用双斜杠而不是带*斜杠/*2.数字,js不区分整数类型,1和1.0是相等的 * NaN是一个数值,它表示一个不能产生正常结果的运算结果.NaN不等于任何值,包括它自己,可用isNaN(number)检查 * 值Infinity表示所有大于1.79769313486231570e+308的值 */

第三章-对象

JavaScript的简单数据类型包括数字.字符串.布尔值.null和underfined值.其他所有值都是对象.对象是属性的容器,其中每个属性都有名字和值.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除underfined值之外的任何值 对象字面量 Object Literals 对象字面量提供了一种非常方便地创建新对象值的方法.一个对象字面量就是包围在一堆花括号中的零个或多个“名/值”对. 1 var empty_object = {}; 2 3 var stooge = {

【JS复习笔记】02 对象与函数

好吧,因为很重要的事情,几天没写笔记了. 关于对象: ||可以用来填充默认值,如:myApp.name || "无" &&可以用来避免错误,myApp.NameObj有某种情况不存在,那么可以用myApp.NameObj && myApp.NameObj.Name避免脚本错误 所有通过对象字面量创建的对象都连接到Object.prototype,当你创建某对象时也可以选择另一个对象作为它的原型,比如: if(typeof Object.beget!=='

JS对象中的原型

对象的原型:每个对象都连接一个原型对象,并且它可以从中继承属性.所有通过对象字面量创建的对象都连接到object.prototype.当你创建一个新对象时,你可以选择某个对象作为它的原型.原型连接在更新时不起作用.当我们对某个对象作出改变时,不会触及该对象的原型.原型连接只有在检索值的时候才被用到.如果我们尝试去获取对象的某个属性值,但该对象没有此属性名,那么JS会试着从原型对象中获取属性值,如果那个原型对象也没有该属性,那么再从它的原型中找,以此类推,直到该过程最后到达终点Object.pro

第三章 对象(JavaScript:语言精粹)

对象是属性的容器,其中每个属性都有名字和值. 3.0. 概览:对象字面量 | 检索 | 更新 | 引用 | 原型 | 反射 | 枚举 | 删除 | 减少全局变量污染 3.1. 对象字面量 一个对象字面量,就是包围在一对花括号中的零个或多个“名/值”对. // 3.1 code 1 var empty_object = {}; var stooge = { "first-name": "Jerome", "last-name": "How

JavaScript语言精粹知识点总结

1.NaN是一个数值,它表示一个不能产生正常结果的运算结果.NaN不等于任何值,包括它自己. 2.Infinity表示所有大于1.79769313486231570e+308的值,所以Infinity其实是没有具体值的,它是一个集合. 3.JavaScript中的所有字符都是16位 4.下面列出的值被当做假: false null undefined 数字0 数值NaN 空字符串"" 5.其他所有的值都被当做真,包括true,字符"false" 6.for循环有形式

javascript创建对象

以下的方式主要是为了避免忘记写new而封装的方法: //先创建函数 Object.beget = function (o) { var F = function (o) {}; F.prototype = o ; return new F; }; //定义好模板对象 var Cat = { name:'', saying:'meow' }; //从模板对象中创建一个对象 var myCat = Object.beget(Cat); //对象生成后,可以自行对相关属性进行赋值: myCat.nam

JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象

目录 一.闭包(Closure) 1.1.闭包相关的问题 1.2.理解闭包 二.对象 2.1.对象常量(字面量) 2.2.取值 2.3.枚举(遍历) 2.4.更新与添加 2.5.对象的原型 2.6.删除 2.7.封装 三.函数 3.1.参数对象 (arguments) 3.2.构造函数 3.3.函数调用 3.3.1.call 3.3.2.apply 3.3.3.caller 3.3.4.Callee 3.5.立即执行函数表达式 (IIFE) 3.5.1.匿名函数与匿名对象 3.5.2.函数与函数