Javascript Object 对象学习笔记


Posted in Javascript onDecember 17, 2014

构造函数
new Object()

new Object(value)

参数
value
    可选的参数,声明了要转换成Number对象、Boolean对象或String对象的原始值(即数字、布尔值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象。

返回值

如果没有给构造函数传递value参数,那么它将返回一个 新创建的Object实例。如果指定了原始的value参数,构造函数将创建并返回原始值的包装对象,即Number对象、Boolean对象或 String对象。当不使用new运算符,将Object()构造函数作为函数调用时,它的行为与使用new运算符时一样。

属性
constructor
对一个JavaScript函数的引用,该函数是对象的构造函数

方法

1.hasOwnProperty( )
检查对象是否有局部定义的(非继承的)、具有特定名字的属性。

    <script type="text/javascript">

            var o = new Object();

            o.name="Tom";

            alert(o.hasOwnProperty("name"));    //true

            alert(o.hasOwnProperty("age"));    //false

        </script>

2.isPrototypeOf()

语法
object.isPrototypeOf(o)

参数
o
任意对象。

返回值
如果object是O的原型,则返回true。如果o不是对象,或者object不是o的原 型,则返回false。

描述
JavaScript对象继承了原型对象的属性。一个对象的原型是通过用于创建并初始化该对象的构造函数的prototype属性引用的。isPrototypeOf()方法提供了判断一个对象是否是另一个对象原型的方法。该方法可以用于确定对象的 类。

示例

var o = new Object(  );                          // 创建一个对象

Object.prototype.isPrototypeOf(o)                // true: o 是一个对象

Function.prototype.isPrototypeOf(o.toString);    // true: toString 是一个函数

Array.prototype.isPrototypeOf([1,2,3]);          // true: [1,2,3] 是一个数组

//下面是执行同样测试的另一种方法

(o.constructor == Object);  // true: o was created with Object(  ) constructor

(o.toString.constructor == Function);  // true: o.toString is a function

/原型则对象本身于原型对象。下面的调用返回true

//说明函数继 Function.prototype和Object.prototyp属性.

Object.prototype.isPrototypeOf(Function.prototype);

3.ProertyIsEnumerable()

语法
object.propertyIsEnumerable(propname)

参数
propname
一个字符串,包含object原型的名字。

返回值
如果object具有名为propname的非继承属性,而且该属性是可枚举的(即用for/in循环可以枚举出它),则返回true。

描述
用for/in语句可以遍历一个对象“可枚举”的属性。但并非—个对象的所有属性都是可枚举的,通过JavaScript代码添加到对象的属性是可枚举的,而内部对象的预定义属性(如方法)通常是不可枚举的。propertylsEnumerable()方法提供了区分可枚举属性和不可枚举属性的方法。但要注意,ECMAScript标准规定,propertyIsEnumerable()方法不检测原型链,这意味着它只适用于对象的局部属性,不能检测继承属性的可枚举性。

示例

var o = new Object(  );                // 创建一个对象

o.x = 3.14;                            // 定义—个属性

o.propertyIsEnumerable("x");           // true属性x是局部的、可枚举的

o.propertyIsEnumerable("y");           //false:o没有属性y

o.propertyIsEnumerable("toString");    //false:toStrlng属性是继承的

Object.prototype.propertyIsEnumerable("toString");  // false: 枚举的

Bug

当标准限制propertylsEnumerable()方法只能检测非继承属性时,明显是错的。 Internet Explorer 5.5按标准实现了该方法。Nestacpe 6.0实现的propertyIsEnumerable()方法考虑了原型链。虽然这种方法可取,但它与标准冲突,所以Netscape 6.1修改了它,以便与IE 5.5匹配。由于标准中有这个错误,因此该方法不是那么有用。

<script>

 var obj = new Object(); 

     obj.title = 'aaa'; 

     obj.funb = function(a, b) 

        { 

         alert(a+b); 

        } 

    alert(obj.title);

    obj.funb(1,2);

</script>

这里一种方法
******************************

<script language="javascript"> 

function object(value,a,b){ 

        this.title = value; 

        this.funb = function(){ 

                      this.a = a; 

                      this.b = b; 

                      alert(a+b); 

                     } 

                  } 

   var obj = new object("aaa",1,2); 

        alert(obj.title); 

        obj.funb();

//这里为对象添加新的方法 

object.prototype.name = "123456"; 

alert(obj.name); 

</script>

这是另一种方法

Javascript 相关文章推荐
mailto的使用技巧分享
Dec 21 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
JS下载文件|无刷新下载文件示例代码
Apr 17 Javascript
ExtJS4如何给同一个formpanel不同的url
May 02 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
Apr 03 Javascript
javascript实现英文首字母大写
Apr 23 Javascript
js跨域请求数据的3种常用的方法
Dec 01 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 Javascript
vue实现下拉菜单树
Oct 22 Javascript
在Vue中使用mockjs代码实例
Nov 25 Vue.js
node.js中的fs.read方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 #Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 #Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 #Javascript
jQuery+PHP打造滑动开关效果
Dec 16 #Javascript
javascript进行四舍五入方法汇总
Dec 16 #Javascript
You might like
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
纯python实现机器学习之kNN算法示例
2018/03/01 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
python:动态路由的Flask程序代码
2019/11/22 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
蔻驰英国官网:COACH英国
2020/07/19 全球购物
新闻发布会主持词
2014/03/28 职场文书
亲子活动总结
2014/04/26 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
优秀班组申报材料
2014/12/25 职场文书
护士辞职信怎么写
2015/02/27 职场文书
学生犯错保证书
2015/05/09 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL