作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过underscorejs的方法列表,我不禁注意到一个我不记得以前存在过的方法:extendOwn
documentation for this method说:
extendOwn _.extendOwn(destination, *sources) Alias: assign
Like extend, but only copies own properties over to the destination object.
var a = {
foo: false
};
var b = {
bar: true
};
// This will produce { foo: false, bar: true }; ..just like _.extend() would =\
_.extendOwn( a, b );
最佳答案
“自己的属性”是 JS 中的一个技术术语。对象自己的属性是它没有继承的属性。
这是一个简短的片段,揭示了 extend
的不同行为。和 extendOwn
:
// lines have length
line = { length: 4 }
// planes have width and inherit length
plane = Object.create(line)
plane.width = 5
plane.length // 4
// making a cube object, using extend
cube = _.extend({ height: 6 }, plane)
cube.length // 4
// making a cube object, using extendOwn
notACube = _.extendOwn({ height: 6 }, plane)
notACube.length // undefined
extendOwn
只复制直接在源上定义的属性,而
extend
还复制了沿其原型(prototype)链定义的那些。还要注意
_.has
的对称性:
_.has(plane, 'width') // true
_.has(plane, 'length') // false
关于underscore.js - underscorejs - extendOwn 和 extend 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29017446/
通过underscorejs的方法列表,我不禁注意到一个我不记得以前存在过的方法:extendOwn documentation for this method说: extendOwn _.exten
我是一名优秀的程序员,十分优秀!