zoukankan      html  css  js  c++  java
  • js创建对象之原型模式4、重新原型

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<script type="text/javascript">
    		//创建对象之原型模式
    		//由于由于在原型查找值的过程是一个搜索的过程,所以我们修改prototype属性。立即能够体现出来
    		function Person(){};
    		var friend = new Person();	//先创建实例
    		
    		Person.prototype.sayHi = function(){
    			console.log('Hi');
    		}	//后给原型添加属性
    		
    		friend.sayHi();	//能够正常运行
    		
    		console.log('------------------------------------');
    		//但是如果要是重写原型那么情况就不一样了
    		//当我们new一个function的时候得到实例对象
    		//同事创建了[[prototype]]指针指向了原型对象
    		//重写prototype之后,即prototype = {}之后,prototype指向了新的对象
    		//而实例仍然指向了原来的prototype对象
    		function Person(){};
    		var friend = new Person();
    		Person.prototype = {
    			constructor: Person,
    			name: "宝清老窖",
    			age: 29,
    			job: "Software",
    			sayName: function(){
    				console.log(this.name);
    			}
    		}
    		friend.sayName();	//error  friend.sayName is not a function
    		
    		//所以原型的重写要注意
    		</script>
    	</body>
    </html>
    

      提取js

    //创建对象之原型模式
    		//由于由于在原型查找值的过程是一个搜索的过程,所以我们修改prototype属性。立即能够体现出来
    		function Person(){};
    		var friend = new Person();	//先创建实例
    		
    		Person.prototype.sayHi = function(){
    			console.log('Hi');
    		}	//后给原型添加属性
    		
    		friend.sayHi();	//能够正常运行
    		
    		console.log('------------------------------------');
    		//但是如果要是重写原型那么情况就不一样了
    		//当我们new一个function的时候得到实例对象
    		//同事创建了[[prototype]]指针指向了原型对象
    		//重写prototype之后,即prototype = {}之后,prototype指向了新的对象
    		//而实例仍然指向了原来的prototype对象
    		function Person(){};
    		var friend = new Person();
    		Person.prototype = {
    			constructor: Person,
    			name: "宝清老窖",
    			age: 29,
    			job: "Software",
    			sayName: function(){
    				console.log(this.name);
    			}
    		}
    		friend.sayName();	//error  friend.sayName is not a function
    		
    		//所以原型的重写要注意
    

      

  • 相关阅读:
    1130 Infix Expression (25分)
    1131 Subway Map (30分)
    1132 Cut Integer (20分)
    1133 Splitting A Linked List (25分)
    1134 Vertex Cover (25分)
    1135 Is It A Red-Black Tree (30分)
    tensorflow 1.0的部分项目配置匹配
    1136 A Delayed Palindrome (20分)
    谷粒商城Redisson分布式锁(二十四)
    谷粒商城缓存(二十三)
  • 原文地址:https://www.cnblogs.com/xudy/p/5427111.html
Copyright © 2011-2022 走看看