<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>工厂模式</title>
</head>
<body>
	<script>
	function createPerson(name,age){
		var obj = new Object ();
		obj.uname = name;
		obj.age =age;
		obj.showPerson= function(){
			console.log(this.age);
			console.log(this.uname);
		}
		return obj;
	}
	var man = new createPerson('ajia',23);
	man.showPerson()
	</script>
</body>
</html>

  

<script>
	function createPerson(name,age){
		this.uname = name;
		this.age = age;
		this.showPerson = function(){
			console.log(this.uname);
			console.log(this.age)
		}
	}

	var obj = new createPerson('zjs',23);
	obj.showPerson();
</script>

  

<meta charset="utf-8">
<script>
	function createPeson(name,age){
	  this.name = name;
	  this.age = age;
	  this.showMf = function(){
	  	 this.name= 'aaa---';
	  	 console.log(this.name)
	  }
	}
	createPeson.prototype.showPerson = function(){
		console.log(this.name);
		console.log(this.age);
	}
    var obj = new createPeson('ajia',23);
    obj.showPerson();
    obj.showMf();
</script>

  

<meta charset="utf-8">
<script>
	function createPerson(name,age){
		this.name = name;
		this.age = age;
		//动态创建一个方法
		if(typeof createPerson.doWork == 'undefined'){
			createPerson.prototype.doWork = function(){
				console.log(this.name+'---'+this.age+'---'+'在学习');
			}
			createPerson.doWork = true;
		}

	}
	var person = new createPerson('zjs',23);
	person.doWork();
	console.log(createPerson.doWork)

	var person1 = new createPerson('ajia',33);
	person1.doWork();
   	console.log(createPerson.doWork)

</script>

  

<meta charset="utf8">
<script>
    //继承1
	function  Parent(name){
	    this.name=name;
	    this.sayParent=function(){
	        console.log("Parent:"+this.name);
	    }
	}  

	function  Child(name,age){
	    this.tempMethod=Parent;
	    this.tempMethod(name);
	    this.age=age;
	    this.sayChild=function(){
	        console.log("Child:"+this.name+"age:"+this.age);
	    }
	}
	var c = new Child('zjs',23);
	c.sayChild();
	c.sayParent()
</script>

  

<meta charset="utf-8">
<script>
    // 继承2
	function  Person(name,age,love){
	     this.name=name;
	     this.age=age;
	     this.love=love;
	     this.say=function say(){
	         console.log("姓名:"+name);
	     }
	 }  

     //这里是call方法
	 function student(name,age){
	     Person.call(this,name,age);
	 }  

	 // 这里是apply方法
	 function teach(name,love){
	 	// Person.apply(this,[name,love]);
	 	Person.apply(this,arguments);
	 }

	 //call与aplly的异同:
    //1,第一个参数this都一样,指当前对象
    //2,第二个参数不一样:call的是一个个的参数列表;apply的是一个数组(arguments也可以) 

     var t = new teach('mayun','baseketball');
     t.say()
	 // var p = new Person('zjs',23,'nba');
	 // var s = new student('ajia',28);
	 // s.say();

</script>

  

<meta charset="utf-8">
<script>
    //继承3
	function Person(name,age){
	      this.name=name;
	      this.age=age;
	  }
    Person.prototype.sayHello=function(){
          console.log("使用原型得到Name:"+this.name);
      }  

   function Student(){}
	    Student.prototype=new Person("洪如彤",21);
	    var stu=new Student();
	    Student.prototype.grade=5;
	    Student.prototype.intr=function(){
	        console.log(this.grade);
    }
   stu.sayHello();//输出:使用原型得到Name:洪如彤
      stu.intr();//输出:5
</script>

  

js对象基础写法练习的更多相关文章

  1. [JS] 面向对象的5种写法和拓展JS对象的写法

    面向对象的JAVA  最开始当然是对象的定义了 收集了以下的五种写法 //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; C ...

  2. JS对象的写法

    写法1: <script> var database = function () { function add(){ console.info("add"); } fu ...

  3. JS对象基础 闭包等

    一.我们知道js的基本数据类型包括:number,boolen,string,null及undefined; 看下面的一段代码: var abcobject  = { firstname:" ...

  4. JS对象基础

    JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性 属性是与对象相关的值. 访 ...

  5. JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)

    函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) {             return i1 + i2;//如果不写return返回 ...

  6. javascript基础-js对象

    一.js对象的创建 1.普通最简单的方式 var teacher = new Object( ); teacher.name = "zhangsan"; teacher.age = ...

  7. 认识JS的基础对象,定义对象的方法

    JS的基础对象: 1.window       //窗口对象 2.document   //文档对象 3.document.documentElement      //html对象 4.docume ...

  8. 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图

    jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...

  9. js 对象深复制,创建对象和继承

    js 对象深复制,创建对象和继承.主要参考高级编程第三版,总结网上部分资料和自己的代码测试心得.每走一小步,就做一个小结. 1.对象/数组深复制 一般的=号传递的都是对象/数组的引用,如在控制台输入 ...

随机推荐

  1. [APIO2010]巡逻(树的直径)

    [APIO2010]巡逻 题目描述 在一个地区中有 n 个村庄,编号为 1, 2, ..., n.有 n – 1 条道路连接着这些村 庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到 ...

  2. View 和 ViewGroup 的 hasFocusable

    在 android 中.焦点的获取和事件几乎相同,有一个分发机制.一般来说View 树上上层节点的 ViewGroup 比底层节点的 View 有更高的优先级获取焦点.这体如今 ViewGroup 有 ...

  3. [React] Implement a Higher Order Component with Render Props

    When making a reusable component, you'll find that people often like to have the API they're most fa ...

  4. Effective C++ Item 30 inline里里外外

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie Item 44 46 1.将大多数 inlining 限制在小型.被频繁调用的函数身上.这可 ...

  5. codeforces 558E A Simple Task 线段树

    题目链接 题意较为简单. 思路: 由于仅仅有26个字母,所以用26棵线段树维护就好了,比較easy. #include <iostream> #include <string> ...

  6. [BZOJ4826][HNOI2017]影魔 可持久化线段树

    链接 题意:给你 \(1\) 到 \(n\) 的排列 \(k_1,k_2,\dots,k_n\) ,对 \(i,j (i<j)\)来说,若不存在 \(k_s (i<s<j)\) 大于 ...

  7. BZOJ3875: [Ahoi2014&Jsoi2014]骑士游戏

    [传送门:BZOJ3875] 简要题意: 给出n种怪物,每种怪物都带有三个值,S[i],K[i],R[i],分别表示对他使用普通攻击的花费,使用魔法攻击的花费,对他使用普通攻击后生成的其他怪物. 每种 ...

  8. legend---七、jquery如何选中select的selected的选择上的自定义属性

    legend---七.jquery如何选中select的selected的选择上的自定义属性 一.总结 一句话总结:用冒号属性选择器 var type=$(this).children('option ...

  9. HUE配置文件hue.ini 的desktop模块详解(图文详解)(分HA集群)

    http://archive.cloudera.com/cdh5/cdh/5/hue-3.9.0-cdh5.5.4/manual.html#_install_hue [desktop]这块,配置如下 ...

  10. 分享一个正则 选择html中所有的单标签

    var str = /\B<.+?>/g;