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 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
Mar 28 Javascript
50个比较实用jQuery代码段
Sep 18 Javascript
Flexigrid在IE下不显示数据的有效处理方法
Sep 04 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
jquery实现图片切换代码
Oct 13 Javascript
图文详解Javascript中的上下文和作用域
Feb 15 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
axios+Vue实现上传文件显示进度功能
Apr 14 Javascript
微信小程序开发摇一摇功能
Nov 22 Javascript
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生成自己的LOG文件
2006/10/09 PHP
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
js命名空间写法示例
2015/12/18 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
vue双向数据绑定知识点总结
2018/04/18 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
总结Python编程中函数的使用要点
2016/03/20 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
学校运动会开幕演讲稿
2014/01/04 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
学校运动会霸气口号
2014/06/07 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
Python函数中apply、map、applymap的区别
2021/11/27 Python