hasownproperty

关于原型

落花浮王杯 提交于 2020-01-14 00:47:29
---恢复内容开始--- 原型 是一个对象,其他对象可以通过它实现属性继承。 每个函数都有一个属性叫做 prototype 。 这个prototype的属性值是一个对象(属性的集合,再次强调!),默认的只有一个叫做constructor的属性,指向这个函数本身。 原型方式 该方式利用了对象的 prototype 属性,可以把它看成创建新对象所依赖的原型。 这里,首先用空构造函数来设置类名。 然后所有的属性和方法都被直接赋予 prototype 属性。 我们重写了前面的例子,代码如下: function Car() { } Car.prototype.color = "blue"; Car.prototype.doors = 4; Car.prototype.mpg = 25; Car.prototype.showColor = function() { alert(this.color); }; var oCar1 = new Car(); var oCar2 = new Car(); __proto__ , constructor , prototype hasOwnProperty() hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。 如果有,返回true,否则返回false。 语法:object.hasOwnProperty(

JavaScript 秘密花园 http://bonsaiden.github.com/JavaScript-Garden/zh/

五迷三道 提交于 2020-01-12 20:22:25
简介 JavaScript 秘密花园 是一个不断更新,主要关心 JavaScript 一些古怪用法的文档。 对于如何避免常见的错误,难以发现的问题,以及性能问题和不好的实践给出建议, 初学者可以籍此深入了解 JavaScript 的语言特性。 JavaScript 秘密花园 不是 用来教你 JavaScript。为了更好的理解这篇文章的内容, 你需要事先学习 JavaScript 的基础知识。在 Mozilla 开发者网络中有一系列非常棒的 JavaScript 学习 向导 。 译者注: 文中提到的 ES5 是 ECMAScript 5 的简写,是 ECMAScript 标准语言的下一版本,正在开发中。 JavaScript 是此标准语言的一个方言。 关于作者 这篇文章的作者是两位 Stack Overflow 用户, 伊沃·韦特泽尔 Ivo Wetzel (写作) 和 张易江 Zhang Yi Jiang (设计)。 贡献者 Caio Romão (拼写检查) Andreas Blixt (语言修正) 中文翻译 三生石上 此中文翻译由 三生石上 独立完成, 博客园 首发,转载请注明出处。 许可 JavaScript 秘密花园在 MIT license 许可协议下发布,并存放在 GitHub 开源社区。 如果你发现错误或者打字错误,请 新建一个任务单 或者发一个抓取请求。

Object的一些常见用法

核能气质少年 提交于 2020-01-04 18:17:41
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。 语法:Object.defineProperty(obj, prop, descriptor) 参数:   obj(将要被添加属性或修改属性的对象)   prop(与第一个对象中要添加的属性一一对应)   descriptor(将被定义或修改的属性的描述符) let obj = {}; // 在对象中添加一个属性与数据描述符的示例 Object.defineProperty(obj, “a”, { value : 20, // 属性 a 的初始化值是20 writable : true, // 可修改值内容 enumerable : true, // 可枚举,默认 false configurable : true // 可删除,默认 false }); obj.b=30; Object.getOwnPropertyDescriptors 返回一个对象,所有原来的对象的属性名都是该对象的属性名,对应的属性值就是该属性的描述对象 console.log(Object.getOwnPropertyDescriptors(obj)) Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述

Javascript hasOwnProperty always false on Event objects?

拥有回忆 提交于 2019-12-23 16:19:28
问题 I was hoping somebody could help clarify the hasOwnProperty() method with relation to Event Objects. I am trying to clone a mouse event (eventually this object will be passed to an iframe) I have already built a 'clone' function - but whenever i attempt to clone a window event (ie scroll, click etc) all instances of 'hasOwnProperty()' return false. For example, i iterate over the object - using hasOwnProperty() to check - and each property is returning false. This works for standard objects -

JavaScript学习笔记-对象

白昼怎懂夜的黑 提交于 2019-12-23 05:31:40
枚举对象的属性:通常用for(...in...)来循环遍历,由于 for in 总是要遍历整个原型链,因此如果一个对象的继承层次太深的话会影响性能 for(var i in foo){ if(foo.hasOwnProperty(i)){ console.log(i); } } 推荐总是在for in使用 hasOwnProperty,因为类库被包含在页面中时,不使用 hasOwnProperty 过滤的 for in循环难免会出问题。 p.hasOwnProperty('x') //检查对象p是否含有自有属性x,若x是继承属性则返回false p.propertyIsEnmuerable('x') //检查属性x是否可被枚举 对象继承来的内置方法是不可枚举的,如:toString() 自行添加的属性均是可枚举的,除非被转为不可枚举; Object.keys() 返回一个数组,一个由对象的所有可枚举属性的名字组成的数组; Object.getOwnPropertyNames() 返回所有自有属性名称组成的数组; function anotherKeys(o){ if(typeof o !== 'object') throw TypeError; var result = []; for(var prop in o){ if(o.hasOwnProperty(prop))

Array filter returns strange results

杀马特。学长 韩版系。学妹 提交于 2019-12-22 12:43:14
问题 Related to this question, i wanted to try out this var arr = [0,1,2,true,4,{"abc":123},6,7,{"def":456},9,[10]]; arr.filter(Object.hasOwnProperty,"abc");//outputs [0, 1, 2] arr.filter(Object.hasOwnProperty,"2222222") //[0, 1, 2, 4, 6] Does anyone knows why filter return these values? Spec of filter and MDN doc also doesn't clearly tell how second argument of filter is used. 回答1: The second argument to the Array.prototype.filter is the value that will be set as this to the function that is

object has no hasOwnProperty method (i.e. it's undefined) - IE8

天大地大妈咪最大 提交于 2019-12-17 07:30:11
问题 This seems quite bizarre. Here's my experiment in the IE8 console: typeof obj1 // "object" obj1.hasOwnProperty // {...} typeof obj2 // "object" obj2.hasOwnProperty // undefined Any ideas as to what could cause this? 回答1: This example is from IE8, but the same return is from IE6+ and most other IE browsers. IE before #9 does not define it for host objects var o=window;// or document or document elements o.hasOwnProperty /* returned value: (undefined) undefined */ 来源: https://stackoverflow.com

Javascript what is property in hasOwnProperty?

蓝咒 提交于 2019-12-17 07:12:21
问题 if (someVar.hasOwnProperty('someProperty') ) { // do something(); } else { // do somethingElse(); } What is the right use/explanation of hasOwnProperty('someProperty') ? Why we can't simply use someVar.someProperty to check if an object someVar contains property with name someProperty ? What is a property in this case? What property does this javascript check? 回答1: hasOwnProperty returns a boolean value indicating whether the object on which you are calling it has a property with the name of

Why use Object.prototype.hasOwnProperty.call(myObj, prop) instead of myObj.hasOwnProperty(prop)?

那年仲夏 提交于 2019-12-17 02:41:13
问题 If I understand correctly, each and every object in Javascript inherits from the Object prototype, which means that each and every object in Javascript has access to the hasOwnProperty function through its prototype chain. While reading require.js' source code, I stumbled upon this function: function hasProp(obj, prop) { return hasOwn.call(obj, prop); } hasOwn is a reference to Object.prototype.hasOwnProperty . Is there any practical difference to writing this function as function hasProp(obj

hasOwnProperty的使用

我是研究僧i 提交于 2019-12-15 05:23:57
hasOwnProperty()检车一个属性是存在于对象实例中(返回true),还是存在原型中(false) hasOwnProperty()是从Object继承过来的。 function Person(name, age, job) { this.name = name; this.age = age; this.job = job; } console.log(new Person("xuelian","","微信小程序")); console.log(Person.hasOwnProperty("name"));//true /** * 原型模式 */ function Person1(){} Person1.prototype.name = "duxin"; Person1.prototype.age = 25; Person1.prototype.job = "web wechat" const person1 = new Person1(); console.log(person1.name); console.log("name" in person1);//true console.log(person1.hasOwnProperty("name"));//false 来源: CSDN 作者: 潇湘一夜雨 链接: https://blog.csdn.net