`
墨香子
  • 浏览: 46313 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Js对象推演

阅读更多


1.js中所有东西都是对象,但有一些例外(原始值)
true, 123, 'abc', undefined, {}


2.给对象加一些规则:所有对象可以通过点给对象设置属性值
var obj = {};
obj.abc = 123;

3.给对象加一些规则:所有对象可以通过点取对象的属性值
console.log(obj.abc);

4.给对象加一些规则:所有的对象都有__proto__属性,这个属性也是一个对象
console.log(typeof obj.__proto__);

5.给对象设置属性时加一些规则:取对象属性值的时候,如果这个对象本身没有这个属性,那么就去这个对象的__proto__属性中找,对于__proto__也适用,如果找到某个对象的__proto__为null时,则这个值为undefined
obj.aaa ==> obj.__proto__.aaa ==> obj.__proto__.__proto__ = null


6.添加一种特殊的对象类型:函数对象,也叫函数,这种对象包含一些可执行代码,通过()可以调用这些执行代码,而且这种特殊对象继承了对象的所有的规则
var func = function(){
console.log('Hello world!');
}
func();

7.给函数添加一些规则:所有对象都有一个prototype属性,这个属性也是一个对象
console.log(typeof func.propertype);
func.propertype.abc = 123;

8.给函数添加一些规则:可以通过函数对象作为构造函数创建普通对象,创建过程是这样的
var obj = {};
func.call(obj);
obj.__proto__ = func.prototype;

9.给函数添加一些规则:第8步创建对象太复杂了,可以简写成下面的形式
var obj = new func();

10.补充一些规则:创建函数对象还可以这样
function func(){}

11.补充一些规则:以上创建的函数实际上等价于
var func = new Function("");
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics