这个BLOG不错,我练习了一下代码。

感觉他是个高手。

========================

http://www.w3cfuns.com/notes/17398/35b250e9b392675c44f4f0cd833b72c8.html

===================================

<html>
<head>
<title>Test</title>
<script>
    var girl = {
        name: '小雪'
    };
    var boy = {
        name: '小帅',
        pay: function() {
            console.log('花了一千元');
        }
    };
    Object.setPrototypeOf(girl, boy);
    girl.pay();
    var a = {
        fn1: function() {
            console.log(1);
        }
    };
    var b = {
        fn2: function() {
            console.log(2);
        }
    };
    var c = {
        fn3: function() {
            console.log(3);
        }
    };
    var d = {
        fn4: function() {
            console.log(4);
        }
    };
    Object.setPrototypeOf(d, c);
    Object.setPrototypeOf(c, b);
    Object.setPrototypeOf(b, a);
    d.fn1();
    d.fn2();
    d.fn3();
    d.fn4();

    var a = {
        sayName: function() {
            alert(this.name);
        }
    };
    var laoyao = {
        name: 'laoyao'
    };
    Object.setPrototypeOf(laoyao, a);
    //laoyao.sayName();
    var laoyao = {
        name: 'laoyao',
        sayName: function() {
            alert(this.name);
        }
    };
    //var fenshen = {};
    //Object.setPrototypeOf(fenshen, laoyao);
    var fenshen = Object.create(laoyao);
    console.log(fenshen);
    //fenshen.sayName();

    var createPerson = function(name) {
        return {
            name: name,
            sayName: function() {
                alert(this.name);
            }
        };
    };
    var laoyao = createPerson('laoyao');
    //laoyao.sayName();
    var createPerson = function(name) {
        var o = {};
        o.name = name;

        var proto = {
            sayName: function() {
                alert(this.name);
            }
        };
        Object.setPrototypeOf(o, proto);
        return o;
    };
    var laoyao = createPerson('laoyao');
    //laoyao.sayName();
    var createPerson = function(name) {
        var o = {};
        o.name = name;
        Object.setPrototypeOf(o, createPerson.proto);
        return o;
    };
    createPerson.proto = {
        sayName: function() {
            alert(this.name);
        }
    };
    var laoyao = createPerson('laoyao');
    laoyao.sayName();
</script>
</head>
<body>
test
</body>
</html>

练习prototype的实现的更多相关文章

  1. js闭包 和 prototype

    function test(){ var p=200; function q(){ return p++; } return q; } var s = test(); alert(s()); aler ...

  2. PHP设计模式(六)原型模式(Prototype For PHP)

    原型设计模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型设计模式简单的来说,顾名思义, 不去创建新的对象进而保留原型的一种设计模式. 缺点:原型设计模式是的最主要的缺点就 ...

  3. Function.prototype.toString 的使用技巧

    Function.prototype.toString这个原型方法可以帮助你获得函数的源代码, 比如: function hello ( msg ){ console.log("hello& ...

  4. 分析js中的constructor 和prototype

    在javascript的使用过程中,constructor 和prototype这两个概念是相当重要的,深入的理解这两个概念对理解js的一些核心概念非常的重要. 我们在定义函数的时候,函数定义的时候函 ...

  5. C#设计模式:原型模式(Prototype)及深拷贝、浅拷贝

    原型模式(Prototype) 定义: 原型模式:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象.被复制的实例被称为原型,这个原型是可定制的. Prototype Pattern也是一 ...

  6. 关于JS的prototype

    在接触JS的过程中,随着理解的深入会逐渐的理解一些比较深奥的理论或者知识,那么今天我们来介绍一下比较难理解的prototype和constructor. 初步理解: 在说prototype和const ...

  7. js中的原型prototype

    var arr1 = new Array(12,34,98,43,38,79,56,1); arr1.sum=function (){ var result = 0; for(var i=0; i&l ...

  8. [基础] Array.prototype.indexOf()查询方式

    背景 最近在看Redux源码,createStore用于注册一个全局store,其内部维护一个Listeren数组,存放state变化时所有的响应函数. 其中store.subscribe(liste ...

  9. prototype,__proto__,constructor

    proto属性: 所有对象都有此属性.但它不是规范里定义的属性,并不是所有JavaScript运行环境都支持.它指向对象的原型,也就是你说的继承链里的原型.通过Object.getPrototypeO ...

  10. js构造函数的方法与原型prototype

    把方法写在构造函数内的情况我们简称为函数内方法,把方法写在prototype属性上的情况我们简称为prototype上的方法 函数内的方法: 使用函数内的方法我们可以访问到函数内部的私有变量,如果我们 ...

随机推荐

  1. linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)

     linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...

  2. ci中如何私有化方法

    私有方法 在某些情况下,你可能想要隐藏一些方法使之无法对外查阅.将方法私有化很简单,只要在方法名字前面加一个下划线("_")做前缀就无法通过 URL 访问到了.例如,如果你有一个像 ...

  3. hdu 2018 母牛的故事

    #include<stdio.h> int main(void) { int i,n,j,k; long long narr[60]; narr[1]=1; narr[2]=2; narr ...

  4. 锋利的jQuery-1--解决jquery库和其他库的冲突

    在jquery中,$(美元符号)就是jquery的别名,也就是说使用$和使用jquery是一样的,在很多时候我们命名空间时,正是因为这 个$而产生的冲突的发生.比如说:$('#xmlas')和JQue ...

  5. jquery设置和获得checkbox选中问题

    1.设置checkbox选中: //选中多选框 checkbox=$("#agentinfo input[name='veri[]']"); //循环多选框中的值 checkbox ...

  6. nginx 启动/停止/重启 BAT

    cls @ECHO OFF SET NGINX_PATH=D: SET NGINX_DIR=D:\Hack\nginx\color 0a TITLE Nginx 管理程序 Power By AntsG ...

  7. linux ftp命令(转)

    此命令需要安装ftp, yum install ftp 1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 ...

  8. quick cocos 的scheduler 定时器

    cocos2dx原生lua对于定时器的写法: 1.每帧调用: void scheduleUpdateWithPriority(int priority) void scheduleUpdateWith ...

  9. 提高php运行效率的50个技巧

    1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存. 3.方法调用看 ...

  10. Win10走红背后,最开心的人却是谷歌

    导读 微软在不惜余力推进Windows10普及的同时,也有一些让自己小小郁闷的事儿发生,在Win10系统当中,微软用新的Edge浏览器取代了用户熟悉的IE浏览器,以求改写在浏览器市场上的被动局面,不过 ...