博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS构造函数、原型对象、隐含参数this
阅读量:4310 次
发布时间:2019-06-06

本文共 1555 字,大约阅读时间需要 5 分钟。

This

解析器再调用函数每次都会向函数内部传递一个隐含的参数this,this指向的是一个对象(函数执行的上下文对象)
1、以函数形式调用时,this永远是window。
2、以方法形式调用时,this就是调用方法的那个对象
3、当以构造函数的形式调用时,this就是新创建的那个对象

使用工厂的方法创建对象

通过该方法可以大批量的创建对象,这样创建的对象使用的构造函数都是Object,无法区分多种不同类型的对象。

function create(name,age,geder){ var obj = new Object(); obj.name = name; obj.age = age; obj.gender =gender; obj.sayName = function(){ alert(this.name); }; return obj;} var obj1 = create(“xx”,xx,“x”); var obj2 = create(“xx”,xx,“x”); var obj3 = create(“xx”,xx,“x”); console.log(obj1); console.log(obj2); console.log(obj3);

构造函数

一个普通的函数,创建方式和普通函数没有区别,不同的是构造函数习惯首字母大写
构造函数和普通函数的区别就是调用方式不同,普通函数直接调用,构造函数需要用new关键字
执行流程:
1、 立刻创建一个新的对象
2、将新建对象设置为this,在构造函数中可以使用this来引用新建的对象
3、逐行执行函数中代码
4、将新建的对象作为返回值返回

function person(name,age,geder){ this.name = name; this.age = age; this.gender =gender; this.sayName = function(){ alert(this.name); };} var per = new person(“xx”,xx,“x”); var per2 = new person(“xx”,xx,“x”); var per2 = new person(“xx”,xx,“x”); console.log(per); console.log(per2); console.log(per3);

使用instanceof可以检查一个对象是否是一个类的实例

语法:对象 instanceof 构造函数
如果是则返回true,否则返回false
为节省空间,将sayname方法在全局作用域中定以,
 但会污染全局作用域的命名空间,不安全
原型(prototype)
每创建一个函数,解析器都会向函数中添加一个属性,这个属性对应一个对象就是原型对象
 作为普通函数调用prototype没有任何作用
 以构造函数调用时,创建的对象都会有一个隐含的属性,
    指向该构造函数的原型对象,可以通过_ _proto_ _来访问该属性
原型对象相当于一个公共的区域,所有对象都可以访问到原型的属性可以将对象中共有的内容,统一设置到原型对象中

function MyClass(){}//向MyClass的原型中添加属性aMyClass.prototype.a = 123;//向MyClass的原型中添加一个方法MyClass.prototype.sayHello = function(){ alert("Hello");};

检查对象自身中是否含有某个属性用对象的hasOwnProperty()

转载于:https://www.cnblogs.com/Yokemadman/p/10362869.html

你可能感兴趣的文章
css实现下拉列表
查看>>
安卓开发之SimpleAdapter的使用
查看>>
Mac配置环境变量(Java,Android,Gradle,Nodejs,MongoDB,Maven,Hosts)
查看>>
jstl 标签 循环 序号
查看>>
[SICP] 求值规则
查看>>
C# 通过优酷网址 获取flash真实地址
查看>>
vsCode常用插件
查看>>
2018年4月24日JAVA
查看>>
log4net 添加日志
查看>>
方法中传参的问题
查看>>
IOS中调用系统拨打电话发送短信
查看>>
30行JavaScript代码实现一个比特币量化策略
查看>>
thinkphp5 数据库配置设置
查看>>
数组的示例
查看>>
java 循环变量
查看>>
Js获取日期时间及其它操作
查看>>
20141103
查看>>
HTML <hr> 标签定义和用法
查看>>
使用File查询出所有的文件和目录的信息
查看>>
.NET Micro Framework V4.2 QFE2新版本简介
查看>>