JS高级---实例对象和属性重名问题

实例对象和属性重名问题

实例对象访问这个属性, 应该先从实例对象中找, 找到了就直接用,找不到就去指向的原型对象中找, 找到了就使用,找不到呢?=====

通过实例对象能否改变原型对象中的属性值? 不能

就想改变原型对象中属性的值, 怎么办?

直接通过原型对象.属性=值;=========可以改变

Person.prototype.sex = "哦唛嘎的";

如下已经改变

    function Person(age, sex) {
      this.age = age;
      this.sex = sex;
    }
    Person.prototype.sex = "女";
    var per = new Person(10, "男");
    // console.log(per.sex);
    //因为JS是一门动态类型的语言,对象没有什么,只要点了,那么这个对象就有了这个东西,没有这个属性,只要对象.属性名字,对象就有这个属性了,但是,该属性没有赋值,所以,结果是:undefined
    // console.log(per.fdsfdsfsdfds);

    // console.log(fsdfdsfds);

    //实例对象访问这个属性,应该先从实例对象中找,找到了就直接用,找不到就去指向的原型对象中找,找到了就使用,找不到呢?=====
    //通过实例对象能否改变原型对象中的属性值?不能
    //就想改变原型对象中属性的值,怎么办?直接通过原型对象.属性=值;可以改变
    Person.prototype.sex = "哦唛嘎的";
    // per.sex = "人";
    console.log(per.sex);
    console.dir(per);

原文地址:https://www.cnblogs.com/jane-panyiyun/p/12153698.html

时间: 2024-10-14 04:51:52

JS高级---实例对象和属性重名问题的相关文章

Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别(转)

一.Java的反射机制   每个Java程序执行前都必须经过编译.加载.连接.和初始化这几个阶段,后三个阶段如下图:  其中 i.加载是指将编译后的java类文件(也就是.class文件)中的二进制数据读入内存,并将其放在运行时数据区的方法区内,然后再堆区创建一个Java.lang.Class对象,用来封装类在方法区的数据结构.即加载后最终得到的是Class对象,并且更加值得注意的是:该Java.lang.Class对象是单实例的,无论这个类创建了多少个对象,他的Class对象时唯一的!!!!.

swfupload js中 file 对象的属性

name=3cc68cfc60b87e6dd6887d8a.jpg modificationdate=Wed   Apr 21 15:48:30 UTC+0800 2010 filestatus=-1 post=[object   Object] type=.jpg index=0 size=29006 creationdate=Wed Apr 21 15:48:38 UTC+0800   2010 id=SWFUpload_0_0swfupload js中 file 对象的属性,布布扣,bub

子类中的属性跟父类中的属性重名的时候,会优先使用子类中的属性

package charter05; public class Animal { int age = 8; //如果父类中显示的声明了有参的构造方法, //而子类中没有显示的声明有参构造方法,此时编译会报错 public Animal(int age) {// super(); this.age = age; } } //-------子类--------------- package charter05; public class Dog { int age = 20; } //-------

5月15日上课笔记-js中 location对象的属性、document对象、js内置对象、Date事件对象、

location的属性: host: 返回当前主机名和端口号 定时函数: setTimeout( ) setInterval() 二.document对象 getElementById(); 根据ID值获取一个DOM对象 getElementsByName(); 根据name属性值获取多个Dom对象 getElementsByTagName(); 根据标签获取多个DOM对象 获取标签体内容 innerHTML 获取input的value值 value 获取下拉框选中的值 value this 代

解决Spring Mvc中对象绑定参数重名的问题

html页面 <form method='post' action='url'> 用户名 <input type='text' name='name'> 用户id <input type='text' name='id'> 食品名 <input type='text' name='name'> 食品id <input type='text' name='id'> <input type='text' name='age'> <i

js中Array对象的属性和方法总结

一:属性 length length除了常见的读取数组的长度以外,也可以通过修改length的值来给数组增加或者删除元素,当length数值减少的时候,从数组末尾删除相应元素:增加的时候增加相应数量的元素,但是新增元素没有赋值的时候,初始值为undefined; 二:方法 检测数组 if(obj instanceof Array){ //执行对数组的操作 } 但是这种方法有一个问题.当页面由框架组成的时候,不同的框架中的Window对象是不同的,而Array对象实际上是Window对象的一个属性

js中遍历对象的属性和值

今天想看一下js的数组遍历的内容,搜索到了一个关于对象遍历写好的函数,保留一下.以后好用. function allPrpos ( obj ) {   // 用来保存所有的属性名称和值   var props = "" ;   // 开始遍历   for ( var p in obj ){ // 方法   if ( typeof ( obj [ p ]) == " function " ){ obj [ p ]() ;   } else { // p 为属性名称,o

js高级---本地对象、内置对象、宿主对象

名词参考: 原生对象:也叫内部对象.本地对象.native object 内置对象:Build-in object 宿主对象:host object ECMA-262 定义: 原生对象:独立于宿主环境的ECMAScript实现提供的对象.与宿主无关,在javascript(远景浏览器).nodejs(node平台).jscript(ie浏览器).typescript(微软平台)等等中均有这些对象.简单来说,本地对象就是 ECMA-262 定义的类(引用类型).在运行过程中动态创建的对象,需要ne

JS高级程序设计-对象基础

一.对象的类型 1.本地对象 (1)Object (2)Function (3)Array * join() * concat() * slice() * 模拟栈方法:push()+pop() * 模拟队列方法:shift()+push() * unshift():第一位添加 * reverse() * sort() * splice() (4)String (5)Boolean (6)Number (7)Date (8)RegExp (9)Error (10)EvalError (11)Ran