JavaScript 对象创建与原型链机制详解

作者:半夏

时间:2026-10-23

浏览:532

本文深入解析 JavaScript 中对象的创建方式及原型机制。通过构造函数、JSON 对象及带参初始化等实例,演示属性与方法的定义。重点讲解原型继承、拷贝继承的实现原理,并剖析原型链顶端默认对象原型的特性,帮助开发者理解对象属性的查找与继承逻辑。

文章目录

JavaScript 对象与原型概述

本文通过具体实例,详细解析 JavaScript 中对象与 prototype 原型的用法,供读者参考学习。

在程序开发中,对象是核心概念。本文将探讨如何在 JavaScript 中定义类以及创建具体的对象实例。

对象创建方式


<script type="text/javascript">
  //创建一个Test对象
  function Test(){
  }
  var test = new Test();
  //创建一个对象
  var obj = new Object();
  //json 对象
  var json1 = {};
</script>

类通常包含特定的属性和方法,下面将介绍如何对这些元素进行定义。

属性与方法定义


<script type="text/javascript">
  function Test(){
    this.name = "谭勇";
    this.age = 22;
    this.getName = function(){
      return this.name;
    }
    this.getAge = function(){
      return this.age;
    }
  }
  var test = new Test();
  console.log(test); //查看一下日志
  var obj = new Object();
  obj.name = "谭勇";
  obj.age = "22";
  obj.getName = function(){
    return this.name;
  };
  obj.getAge = function(){
    return this.age;
  };
  console.log(obj);  //查看下日志
  var json1 = {};
  json1["name"] = "谭勇";
  json1["age"] = 22;
  json1["getName"] = function(){
    return this.name;
  }
  json1["getAge"] = function(){
    return this.age;
  }
  console.log(json1); //查看下日志
</script>

首先介绍构造函数的基本用法。

带参构造函数


<script type="text/javascript">
  function Test2(name,age){
    this.name = name;
    this.age = age;
    this.getName = function(){
      return this.name;
    }
    this.getAge = function(){
      return this.age;
    }
  }
  var test2 = new Test2("谭勇",22);
  console.log(test2);  //查看下日志
</script>

接着演示带有形参的行为定义方式。

行为形参处理


<script type="text/javascript">
  function Test3(){
    this.demo = function(param_str){
      return param_str;
    }
  }
  var test3 = new Test3();
  console.log(test3.demo("aaaaaaaaaaaaaaaaaaaa"));
</script>

随后讲解继承机制的实现。

原型继承实现


<script type="text/javascript">
  function parent(){
    this.getStr = function(){
      return "test str";
    }
  }
  function son(){}
  son.prototype = new parent();
  var sona = new son();
  console.log(sona.getStr());
</script>

介绍拷贝继承的具体操作。

拷贝继承机制


<script type="text/javascript">
  function extend(Child, Parent) {
      var p = Parent.prototype;
      var c = Child.prototype;
      for (var i in p) {
        c[i] = p[i];
      }
  }
  function parent(){
  }
  parent.prototype.getStr=function(){
    return "test str";
  }
  function son(){
  }
  extend(son,parent);
  var sona = new son();
  console.log(sona.getStr());
</script>

探讨原型的概念及其作用。

原型本质上是一个对象,其他对象可借助它实现属性继承。那么,是否任何对象都能充当原型呢?

答案是肯定的。

接下来分析哪些对象具备原型属性。

默认情况下,所有对象都拥有原型。由于原型本身也是对象,因此每个原型自身也包含一个原型。唯一的例外是位于原型链顶端的那个默认对象原型。

原型链与默认原型


<script type="text/javacript">
  var str = "谭勇";
  String.prototype.getName = function(){
    var strs = "";
    for(var i=0;i<this.length;i++){
      strs += this[i];
    }
    return strs;
  }
  console.log(str.getName());
  console.log(str);
  console.log(str[0]);
</script>

感兴趣的朋友可以使用在线 HTML/CSS/JavaScript 代码运行工具:http://tools.jb51.net/code/HtmlJsRun 测试上述代码运行效果。

更多关于 JavaScript 相关内容感兴趣的读者可查看本站专题:《javascript 面向对象入门教程》、《JavaScript 错误与调试技巧总结》、《JavaScript 数据结构与算法技巧总结》、《JavaScript 遍历算法与技巧总结》及《JavaScript 数学运算用法总结》

希望本文所述对大家 JavaScript 程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章