JS高级——Object.prototype成员
基本概念
| 成员 | 描述 |
|---|---|
Object.prototype.__proto__ |
指向当对象被实例化的时候,用作原型的对象。 |
Object.prototype.hasOwnProperty() |
返回一个布尔值 ,表示某个对象是否含有指定的属性,而且此属性非原型链继承的。 |
Object.prototype.isPrototypeOf() |
返回一个布尔值,表示指定的对象是否在本对象的原型链中。 |
Object.prototype.toString() |
返回对象的字符串表示。 |
Object.prototype.valueOf() |
返回指定对象的原始值。 |
valueOf
<script>
function Person() {
this.valueOf = function () {
return 1;
}
}
var p = new Person();
//在对象参与运算的时候
//1.默认的会先去调用对象的valueOf方法,
//2.如果valueOf获取到的值,无法进行运算 ,就去去调用p的toString方法 最终做的就是字符串拼接的工作
console.log(1 + p);
</script>
toString、toLocaleString
<script>
// toString:转为字符串
// toLocaleString:转为字符串,而且将对象转化成本地格式
var o = {};
console.log(o.toString());//[object Object]
console.log(o.toLocaleString());//[object Object] var now = new Date();
console.log(now.toString());//Mon Jan 22 2018 12:37:32 GMT+0800 (中国标准时间)
console.log(now.toLocaleString());//2018/1/22 下午12:37:32
</script>
其他属性
<script>
function Person() {
this.name = 'qx';
}
//
var p = new Person();
//constructor:指向该原型对象相关联的构造函数
console.log(p.constructor);
//hasOwnProperty:用来判断对象本身(不包含原型)是否拥有某个属性
console.log(p.hasOwnProperty("__proto__"));//false
console.log(p.hasOwnProperty('name'));//true
// propertyIsEnumerable:判断属性是否属于对象本身;判断属性是否可以被遍历
console.log(p.propertyIsEnumerable('name'));//true
</script>
JS高级——Object.prototype成员的更多相关文章
- JS 克隆Object.prototype.Clone
我们知道,在js中,当object作为参数传递到函数中进行处理后,实际上是修改了传入的对象本身(或者说是对象的引用),但很多时候我们并不希望函数去修改我们的这些对象参数,这就需要使用到对象的克隆,我们 ...
- 【js】Object.prototype.hasOwnProperty()
hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性 例如:obj.hasOwnProperty(prop) 1. 所有 Object 的对象都会有 hasOw ...
- Object.prototype的成员介绍
3.Object.prototype的成员介绍 Object.prototype是js中所有的对象的祖宗 Object.prototype中所有的成员都可以被js中所有的对 ...
- JS高级. 03 混入式继承/原型继承/经典继承、拓展内置对象、原型链、创建函数的方式、arguments、eval、静态成员、实例成员、instanceof/是否在同一个原型链
继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : fu ...
- js 中调用 Object.prototype.toString()来检测对象的类型
1.使用toString()方法来检测对象类型 可以通过toString() 来获取每个对象的类型.为了每个对象都能通过 Object.prototype.toString() 来检测,需要以 Fun ...
- JS四种判断数据类型的方法:typeof、instanceof、constructor、Object.prototype.toString.call()
1.typeof 1 console.log(typeof ""); //string 2 console.log(typeof 1); //number 3 console.lo ...
- js中[object Object]与object.prototype.toString.call()
最近在用node读取文件中的json数据后,用JSON.parse()转成了json,然后响应数据传给前端,发现输出值object对象时显示[object object],在这里我们来看一下他的具体意 ...
- js & object & prototype & __proto__ & prototype chain
js & object & prototype & proto & prototype chain constructor prototype === instance ...
- js中Object.__proto__===Function.prototype
参考:http://stackoverflow.com/questions/650764/how-does-proto-differ-from-constructor-prototype http:/ ...
随机推荐
- HDU - 3407 - String-Matching Automata
先上题目: String-Matching Automata Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- [bzoj3131]淘金[sdoi2013][数位DP]
求出每个数i可以被转移到的数目$f[i]$,则点$(i,j)$中的金子数目为$f[i]*f[j]$,我们就可以用优先队列求解前$k$大. 首先所有的积数目在$10^4$左右,可以先Dfs搜索出所有的数 ...
- [bzoj1293][SCOI2009]生日礼物(单调队列)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1293 分析: 问题的关键就是选择每种颜色的哪一个好.可以先把每种颜色的第一个一起,更新 ...
- canvas裁剪之后的base64转换为上传文件blob对象
function convertBase64UrlToBlob(urlData){ var bytes=window.atob(urlData.split(',')[1]); //去掉url的头,并转 ...
- Chrome 如何查看/修改Cookie
- Node: 在Mac中离线安装Sqlite3
最近在安装db-migrate的时候,有一个依赖包sqlite3怎样都安装不了,检查下来应该是由于node_sqlit3.node文件无法从Amazon下载导致(源码安装也报错,没有研究过原因).于是 ...
- vim 快速搜索的快捷键
当光标在某个单词上面的时候 按 shift + #键(或 shift + * )就可以了!!! ----------------------------------- If you are worki ...
- 为什么 Android Studio 工程文件夹占用空间这么大?
为什么 Android Studio 工程文件夹占用空间这么大? 学习了: https://www.cnblogs.com/chengyujia/p/5791002.html
- TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)
C66x DSP运行中断的简要流程: 1.使能了全局中断和子中断.假设硬件检測到中断发生,那么CPU就要跳转. 2.软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP寄 ...
- geek青年的状态机,查表,纯C语言实现
geek青年的状态机,查表,纯C语言实现 1. 问题的提出.抽象 建一,不止是他,不少人跟我讨论过这种问题:怎样才干保证在需求变更.扩充的情况下.程序的主体部分不动呢? 这是一个很深刻和艰难的问题.在 ...