JavaScript创建对象的方法
高洛峰
高洛峰 2017-06-12 09:29:35
[JavaScript讨论组]

Javascript创建对象的方法有对象字面量、new+构造函数、Object.create()等,Object.create()方法是否是最能体现Javascript基于原型的思想?new+构造函数创建对象又是怎样体现基于原型的思想的?对象字面量方法和new+构造函数两种方法谁更早出现的?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

抱歉第一个问题我不太了解,等我研究研究再来补充。

第二个问题:
当我们创建一个构造函数,其内部就有一个Prototype属性,该属性是一个指针,指向了该构造函数的原型对象
通过new操作符+构造函数实例化出来的对象,内部有一个__proto__属性,该属性也指向了原型对象

function Foo(name){
    this.name = name;
}

Foo.prototype.getName = function(){
    return this.name;
};

var obj = new Foo("suoz");
alert(obj.getName());

我觉得能体现出来的应该是指通过原型链搜索变量的机制

当搜索一个变量时,会在实例属性中查找,找不到才会去原型对象中(对象的__proto__指向的对象)查找,一直到Object.prototype(因为在JavaScript中每一个函数都是对象),找到则返回,找不到则返回undefined

第三个问题:
肯定是new+构造函数最早出现,因为对象字面量是后来开发人员为了简化操作推出的。再者其实执行了var obj = {};,其实系统内部真实的执行代码是这样的var obj = new Object();

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号