zoukankan      html  css  js  c++  java
  • 对象的创建

    创建对象

    工厂方式

    • 来个栗子:
    	function createPerson(name,sex){
    		//原料
    		var obj = new Object();
    		//加工
    		obj.name = name;
    		obj.sex = sex;
    		obj.show = function (){
    			alert(this.name)
    		}
    		//出厂
    		return obj;
    	}
    	
    	var p1 =  createPerson('hezhi','男');
    	var p2=  createPerson('hezhi','男');
    	p1.show();  //hezhi
    	p2.show();	//hezhi
    	alert(p2.show==p1.show)   //false
    
    • 所谓的构造函数模式,原型模式,都是在工厂方式上进一步改造而成的

    判断一个属性倒底是在原型中,还是在实例中 hasOwnProperty()

    • 来个栗子
    	function Person(){
    		
    	};
    	Person.prototype.name = "hezhi";
    	Person.prototype.age = 24;
    	
    	var p1 = new Person()
    	
    	alert(p1.name)			//hezhi
    	alert(p1.hasOwnProperty("name"))   //false       
    	
    	p1.name = 'zhaoqiao'
    	alert(p1.name);         //zhaoqiao
    	alert(p1.hasOwnProperty("name"))    //true
    	
    	//==华丽的分割线: 只有到name这个属性在对象的实例中的时候才会返回true;当存在原型中的时候只会返回false==//
    	
    

    属性在原型中完全成立的条件:来个栗子

    • hasPrototypeProperty()
    	function Person(){
    				
    	};
    	Person.prototype.name = "hezhi";
    	Person.prototype.age = 24;
    	
    	var p1 = new Person()
    	
    	
    	alert(p1.name)		//hezhi
    	alert("name" in p1)  //true
    	
    	p1.name ="zhangqiao";
    	alert(p1.name)     //zhangqiao
    	alert("name" in p1)  //true
    	
    	in 操作符表示,只要实例对象p1能够访问到的属性   //返回值都是 true
    	
    	
    	function hasPrototypeProperty(obj,name){
    		return  !obj.hasOwnProperty("name") && ("name" in obj)
    	}
    	
    	
    

    对象字面量的方法来重写原型对象

    • 来个栗子
    	function (){
    	}
    	
    	Person.prototype = {
    		name : 'hezhi',
    		age : 29,
    		show : function(){alert(this.name)}
    	}
    
    欢迎各位大虾指正
  • 相关阅读:
    Java应用程序的运行机制,以及JDK,JRE,JVM
    正则表达式练习题
    正则表达式
    转:DOM操作
    jQuery 遍历
    转:把一个对象赋值给另一个对象会指向同一个内存地址
    sql 语句的先后执行顺序
    数据结构时间复杂度进阶篇
    数据结构时间复杂度基础篇
    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现(转)
  • 原文地址:https://www.cnblogs.com/he-zhi/p/6796566.html
Copyright © 2011-2022 走看看