摘要:今天看到这样一道题填写处的内容让下面代码支持问题操作符做了些什么呢创建一个新对象将构造函数的作用域赋给新对象因此就指向了这个新对象执行构造函数中的代码为这个新对象添加属性返回新对象。
填写"TO DO"处的内容让下面代码支持a.name = "name1"; b.name = "name2";
function Obj(name){ // TO DO } obj. /* TO DO */ = "name2"; var a = Obj("name1"); var b = new Obj;
创建一个新对象;
将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ;
执行构造函数中的代码(为这个新对象添加属性) ;
返回新对象。
function Obj(name){ this.name = name; console.log(this); // 严格模式下是undefined 非严格模式下是window对象 } var a = Obj("name1"); console.log(a); // 结果 => undefined
哦,原来只是当作正常的函数调用来执行,Obj没有返回值,故a是undefined。
使用new操作符创建对象,并且构造函数没有返回值或者返回为基本数据类型,那么返回该对象,如下例:
function Obj(name){ this.name = name; } var b = new Obj; console.log(b); // Obj { name: undefined }
function Obj(name){ this.name = name; return "chic"; } var b = new Obj; console.log(b); // 同上
如果构造函数返回一个引用类型:
function Obj(name){ this.name = name; return {}; } var b = new Obj; console.log(b); // {}
对于不加new来执行构造函数来说,返回值就是构造函数的执行结果;对于加new关键字来执行构造函数而言,如果return的是基本数据类型,那么忽视掉该return值,如果返回的是一个引用类型,那么返回该引用类型。
参考答案 :
function Obj(name){ this.name = name; return this; } Obj.prototype.name = "name2"; var a = Obj("name1"); var b = new Obj;
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/92644.html
摘要:我们将通过一个构造函数创建的对象,称为是该类的实例孙悟空男玉兔精女奔波霸男使用可以检查一个对象是否是一个类的实例语法对象构造函数如果是,则返回,否则返回所有的对象都是的后代,所以任何对象和做检查时都会返回 使用对象字面量模式来创建一个对象 (它也叫单例模式 //JS与其他语言的单例模式有很大的区别(如Java),但这就是语言的区别) var obj = {}; ...
摘要:构造函数很多教程都告诉我们,不要直接用内置对象的构造函数来创建基本变量,例如的写法就应该用的写法来取代。但是,构造函数注意是大写的有点特别。构造函数接受的参数中,第一个是要传入的参数名,第二个是函数内的代码用字符串来表示。 如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句原来还可以这样写呢?...
摘要:数据管理,包括数据逻辑数据请求数据存储等功能。负责处理的事件,并更新也负责监听的变化,并更新,控制其他的所有流程。上面代码就是一个最简单的类,构造函数创建出来的对象自身有属性,其原型上面有一个属性。 JS题目总结:原型链/new/json/MVC/Promise 1原型链相关 showImg(https://segmentfault.com/img/remote/14600000161...
摘要:如果该函数的返回值大于,表示第一个成员排在第二个成员后面其他情况下,都是第一个元素排在第二个元素前面。第三次执行,为上一轮的返回值,为第四个成员。第四次执行,为上一轮返回值,为第五个成员。 JS中ArrayAPI学习笔记 记博客,时常回顾.尤其是面试之先回顾阮一峰标准库Array对象 1 一些标准库回顾 showImg(https://segmentfault.com/img/remo...
阅读 3292·2023-04-26 00:58
阅读 1249·2021-09-22 16:04
阅读 3286·2021-09-02 15:11
阅读 1529·2019-08-30 15:55
阅读 2306·2019-08-30 15:55
阅读 3215·2019-08-23 18:41
阅读 3432·2019-08-23 18:18
阅读 2732·2019-08-23 17:53