原型链 之 对象的创建

第一种:自面量

var test={
    name:‘test‘
}
var test = new Object({
    name:‘test‘
})

第二种:显式的构造函数

var M = function(){
    this.name = ‘test‘
}
var o = new M()

第三种

var P = {
    name:‘test‘
}
var o = Object.create(P)
时间: 2024-10-20 01:28:30

原型链 之 对象的创建的相关文章

原型继承+原型链 + 对象继承发展

一.原型继承: 1.说起原型继承,就要先由构造函数创造对象说起,首先了解构造函数内部基本原理: (1).在函数体最前面隐式的加上this = {} (2).执行 this.xxx = xxx; (3).隐式的返回this 并且要注意隐士创建的this对象中有个名为__proto__的属性,其属性值为该构造函数继承的原型prototype. 而原型对象的有一个名为constructor的属性,其属性值为继承之的构造函数, 所以可以通过这两个属性相互查看 2.原型的定义及一些特点: a.定义:原型是

javascript 原型、原型链、对象复制等原理和示例分析(下)

原型 原型是 JavaScript 面向对象特性中重要的概念,也是大家太熟悉的概念.因为在绝大多 数的面向对象语言中,对象是基于类的(例如 Java 和 C++ ) ,对象是类实例化的结果.而在 JavaScript 语言中,没有类的概念 ① ,对象由对象实例化.打个比方来说,基于类的语言中类 就像一个模具,对象由这个模具浇注产生,而基于原型的语言中,原型就好像是一件艺术品 的原件,我们通过一台 100% 精确的机器把这个原件复制出很多份. 前面小节的例子中都没有涉及原型,仅仅通过构造函数和 n

对象的原型链

对象的原型链 凡是对象就有原型 原型也是对象 凡是对象就有原型, 那么原型又是对象, 因此凡是给定义一个对象, 那么就可以找到他的原型, 原型还有原型. 那么如此下去, 就构成一个对象的序列. 称该结构为原型链. 问题: 原型链到底到什么时候是一个头 一个默认的原型链结构是怎样的 原型链结构对已知语法的修正 原型链的结构 凡是使用构造函数创建出对象, 并且没有利用赋值的方式修改原型, 就说该对象保留默认的原型链. 默认原型链结构是什么样子呢? function Person() {} var p

函数的原型对象和原型链?

函数的原型对象: 我们创建的每一个函数都有一个prototype(原型)属性,该属性是一个指针,该指针指向了一个对象(原型对象).对于我们创建的构造函数,该对象中包含可以由所有实例共享的属性和方法. 函数的原型属性prototype指向一个原型对象,这对象中都会自动包含一个constructor(构造函数)属性. 构造函数的原型属性为prototype;而实例化的函数对象的属性为 _proto_, _proto_继承于构造函数的原型属性. __proto__是每个对象都有的一个属性,而proto

(转)认识原型对象和原型链

在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象 Object 和 函数对象 Function. 一般而言,通过 new Function 产生的对象是函数对象,其他对象都是普通对象. 举例说明: function f1() { // todo } var f2 = function () { // todo }; var f3 = new Function('x', 'console.log(x)'); var o1 = {}; var o2 = new O

javascript之对象,原型链

对象 ECMAScript是高度抽象的面向对象语言,处理对象的.同样也有基本类型,但是他们在需要的情况下,也可以转型成对象. 定义: 对象是拥有一系列属性以及唯一的原型对象.那原型对象可能是对象,也可能为空. 让我们看一个基本对象的例子.对象的原型是通过内部的[[Prototype]]来引用的.然而,我们将会用 __<internal_property>__ 下化线符号替代双中括号,那么对于原型对象: __proto__. 对于下面代码: var foo = { x: 10, y:20 };

JavaScript对象的创建之基于构造方法+原型方式

为了解决原型所带来的问题,此处需要通过组合构造方法和原型来实现对象的创建,将属性在构造方法中定义,将方法在原型中定义.这种有效集合了两者的优点,是目前最为常用的一种方式. function Person(name,age,friends){ //属性在构造函数中定义 this.name = name; this.age = age; this.friends = friends; } Person.prototype = { constructor:Person, //方法在原型中定义 say:

js:对象的创建(基于组合和动态原型)

基于原型的创建虽然可以有效地完成封装,但是依然存在如下问题: 1.无法通过构造函数来设置属性值 2.当属性中有引用类型变量时,可能存在变量值重复 function Person(){ } Person.prototype = { constructor:Person, name:"Leon", age:30, friends:["Ada","Chris"], say:function(){ alert(this.name+"["

javascript中的构造函数和原型及原型链

纯属个人理解,有错误的地方希望大牛指出,以免误人子弟 1.构造函数: 构造函数的作用 : 初始化由new创建出来的对象    new 的作用: 创建对象(空对象) new 后面跟的是函数调用,使用new来调用函数,跟普通的直接调用函数主要的不同: 就是 this 的指向不同了 , 再就是 会自动的返回新创建的对象 什么是原型?        原型的作用:就是为了实现继承!  一个对象的原型就是它的构造函数的prototype属性的值. 在讨论原型的时候,是指的 对象和原型对关系 prototyp