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)}
    	}
    
    欢迎各位大虾指正
  • 相关阅读:
    Base64
    HBase搭建
    解决Zookeeper无法启动的问题
    docker基础知识之挂载本地目录
    VMware升级到15版本虚拟机黑屏的解决方法
    docker端口映射或启动容器时报错Error response from daemon: driver failed programming external connectivity on endpoint
    MQTT 入门介绍
    OpeTSDB的Configuration配置
    js中ES6的Set的基本用法
    Review-JVM
  • 原文地址:https://www.cnblogs.com/he-zhi/p/6796566.html
Copyright © 2011-2022 走看看