javascript原型对象

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘test3.jsp‘ starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script src="js/jquery-2.1.1.min.js"></script>
    <script>
        //原型prototype
        //构造函数式   每个对象都有属性和sayname函数
//        function Person(name,age){
//            this.name=name;
//            this.age=age;
//            this.sayname=function(){
//                return this.name;
//            }
//        }
//        function sayName(){
//            return this.name;
//        }
//        var p1=new Person(‘zhangsan‘,‘男‘);
//        var p2=new Person(‘wangwu‘,‘女‘);
//        //alert(p1.sayname()==p2.sayname());      //false
//        //alert(p1.name==p2.name);                //false
//        alert(p1.sayname());
//        alert(p2.sayname());
        
        
        
        
        /*
        function Person(name,age){
            this.name=name;
            this.age=age;
            this.sayname=sayName;
        }
        function sayName(){
            alert(this.name);
        }
        var p1=new Person(‘zhangsan‘,‘男‘);
        var p2=new Person(‘wangwu‘,‘女‘);
        alert(p1.sayname()==p2.sayname());     //true 
        //alert(p1.sayname());
        //alert(p2.sayname());
        
        */
        //创建每一个函数都有一个prototype属性,这个属性其实是指针,这个指针总是指向一个对象
        //    这个对象用途是将特定的属性和方法包含在内,起到一个所有对象共享的作用
        //原型对象   每个对象共享属性和对象
        function Person(){
            
        }
        var obj=Person.prototype;
        obj.name=‘张三‘;
        obj.age=23;
        obj.sayName=function(){alert(this.name);}
        var p1=new Person();
        var p2=new Person();
        //alert(p1.age);
        //alert(p2.age);
        //p1.sayName();
        //p2.sayName();
        alert(p1.sayName()==p2.sayName());
        //构造函数.prototype=原型对象
        //原型对象.constructor=构造函数
        alert(obj.constructor);
        //实例对象.prototype=原型对象
        alert(obj.isPrototypeOf(p1));        //true    obj是p1的原型
    </script>
  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>

时间: 2024-10-11 22:04:11

javascript原型对象的相关文章

JavaScript 原型对象和原型链

开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你没有真正的理解.最近正在读<Javascript高级程序设计>,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明. 我们经常会这么写 1 function Person () { 2 this.name = 'John'; 3 } 4 var person = new

javascript -- 原型对象

原型对象: 每个对象都有一个参考对象,这个参考对象称之为原型对象.原型对象有自己的属性和方法.当A是B的原型对象时,那 么B拥有A中的所有属性和方法. 原型对象的工作原理: 使用原型对象定义一个新的对象时,该对象不会立即拥有原型对象的属性和方法,在调用的时候本对象内部没有的属性和方法是才回去调用原型中的属性和方法.(动态分配). 原型对象的引用: 在javascript中每一个函数都定义了一个prototype属性用于引用原型对象. Js代码 1 function computer(){ 2 3

一文带你彻底理解 JavaScript 原型对象

一.什么是原型 原型是Javascript中的继承的基础,JavaScript的继承就是基于原型的继承. 1.1 函数的原型对象 在JavaScript中,我们创建一个函数A(就是声明一个函数), 那么浏览器就会在内存中创建一个对象B,而且每个函数都默认会有一个属性 prototype 指向了这个对象( 即:prototype的属性的值是这个对象 ).这个对象B就是函数A的原型对象,简称函数的原型.这个原型对象B 默认会有一个属性 constructor 指向了这个函数A ( 意思就是说:con

JavaScript原型对象的属性和方法

前面介绍了普通对象的原型链结构,下面会先介绍一下原型对象中的属性和方法,然后介绍函数对象的原型链,最后将原型链进行整合一下. 第一部分Object.prototype的属性和方法 1 Object.prototype.toString方法 因为Object.prototype顶级对象中定义了toString方法,所以任何对象都有一个toString方法. 可以用来检测对象的类型,当然只能检测内置对象的类型,如果是自定义构造函数创建的对象的话无法准确检测出来类型. 使用方式:Object.prot

javascript原型对象与实例对象属性

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getS

javascript原型对象prototype

“我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.” 引用类型才具有prototype属性,包含: 1.Object 2.Function 3.Array 4.Date 5.String 6.RegExp 比如: 1 var fn=new String("text"); 2 String.prototype.value="val"; 3 console.lo

javascript原型对象用字面量赋值

原型对象用字面量赋值时需要注意将constructor指回原对象. <script>     function Person(name , age){         this.name = name ;         this.age = age ;         this.say = function (){             return "name : "+ this.name + "age: "+this.age ;         

深入javascript——构造函数和原型对象

深入javascript——构造函数和原型对象 常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function() { console.log(this.name + "said:love you forever");

谈谈对Javascript构造函数和原型对象的理解

对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模式 使用new关键字创建最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function